If for some reason the blank template or archetype doesn't work out, we can just setup an application from scratch.
Setup the Web Application File Structure
/tutorial/ /tutorial/META-INF/ /tutorial/WEB-INF/ /tutorial/WEB-INF/classes/ /tutorial/WEB-INF/lib/ /tutorial/WEB-INF/lib/CORE&OPTIONAL *.jar /tutorial/WEB-INF/web.xml
- Copy to your
webapp/lib
directory- the
struts2-core-(VERSION).jar
, - all the
*.jar
files in/lib/default
, and - any necessary optional
*.jar
files from/lib/
.
- the
To customize the Struts templates (how HTML is rendered from the tags), copy into the application's webapp
directory the framework's /src/java/template
directory.
Install the Minimum Set of Libraries and Configuration Files
The following files are a minium requirement for your application.
Filename |
Description |
---|---|
|
Framework library itself, found in distribution root directory |
|
XWork library on which Struts 2 is built (version 2.0 or later) |
|
OSCore, a general-utility library from OpenSymphony |
|
Object Graph Navigation Language (OGNL), the expression language used throughout the framework |
|
Commons logging, which the framework uses to support transparently logging to either Log4J or JDK 1.4+ |
|
All UI tag templates are written in Freemarker (also a good option for your own views) |
|
The default dependency injection container for the framework. |
|
Java web application configuration file that defines the filters (and other components) for your web application |
|
Framework configuration file that defines the actions, results, and interceptors for your application |
|
Spring configuration file for any application Spring beans (may be empty). |
The library files (*.jar
) needs to be copied to your /WEB-INF/lib/
directory. If you need optional functionalities requiring dependencies on optional JARs, those JARs need to be copied to this directory too.
Setup the Web Application Deployment Descriptor (web.xml
)
Create an web.xml
file in [webapp]/WEB-INF
(or merge into it the framework resources).
<?xml version="1.0"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <display-name>My Application</display-name> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> </web-app>
The standard web.xml
registers a FilterDispatcher to enable framework functionality for your requests. The ContextLoaderListener configures Spring as our dependency injection container. The framework uses Spring internally. (You may wish to use Spring to deploy your own objects too.)
See also: web.xml
Setup the Struts Configuration (struts.xml
)
Create a skeleton struts.xml
file in /$APP/WEB-INF/classes
.
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts><!-- Configuration for the default package. --> <package name="default" extends="struts-default"> ... </package> </struts>
For now, the struts.xml
just defines a default package (with the <package> section) where framework elements like actions
, results
and interceptors
are registered.
See also: struts.xml
Next |
Onward to Hello World |
---|---|
Prev |
Return to Ready, Set, Go! |