关联Struts2源代码
在Eclipse或者MyEclipse关联Struts2源代码,关联External Folder到以下目录即可
struts-2.1.8-all/struts-2.1.8/src/core/src/main/java
添加Struts2的相关jar包
将Struts2框架最基本的五个JAR拷贝到Web应用的lib目录下就OK了
五个JAR包的名字,如下所示:
commons-logging-1.0.4.jar
freemarker-2.3.8.jar
ognl-2.6.11.jar
struts2-core-2.0.11.jar
xwork-2.0.4.jar
Strust2环境配置
首先配置web.xml文件,增加Struts2核心控制器的配置和映射信息
然后添加Struts2的配置文件struts.xml,它应保存在WEB-INF中的classes目录下
所以我们就可以在Eclipse中Web项目的src目录下建立struts.xml文件
在web.xm文件中的具体配置如下:
<filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> <!-- 以上是Strus2.1.8.1用到的FilterClass,以下是Strus2.0.11及以下版本用到的FilterClass --> <!-- <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> --> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list>
在StrutsPrepareAndExecute的init()方法中将会读取类路径下默认的配置文件struts.xml
完成初始化操作。
注:struts2读取到配置文件struts.xml的内容后,以javaBean的形式存放在内存中,以后
struts2对用户的每次请求处理将使用内存中的数据,而不是每次读取struts.xml文件。
struts.xml文件的具本配置如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="struts2" extends="struts-default" namespace="/user"> <action name="login" class="com.jadyer.action.LoginAction"> <result name="input">/login.jsp</result> <result name="failer">/login.jsp</result> <result name="success">/result.jsp</result> </action> </package> </struts>
在struts2框架中,使用包来管理Action。包的作用和java中的类包是非常类似的,它主要用于管理业务功能相关的Action。在实际应用中,我们应该把一组业务功能相关的Action放在同一个包下。配置包时,必须指定name属性,该属性值可以任意取名,但必须唯一,他不对应java的类包,如果其他包要继承该包,必须通过该属性进行引用,包的namespace属性用于定义该包的命名空间,命名空间作为访问该包下Action的路径的一部分。如访问上面例子的Action,访问路径为:/user/login.action, namespace属性可以不配置。
通常每个包都应该继承struts-default包,因为struts2很多核心功能都是拦截器来实现的,如:从请求中把请求参数封装到Action,文件上传和数据验证等都是通过拦截器实现的。struts-default定义了这些拦截器和Result类型,可以这么说,当包继承了struts-default
才能使用struts2的核心功能。struts-default包是在struts-core-2.x.x.jar文件中的struts-default.xml中定义的,这文件也是struts2
默认的配置文件,struts2每次都会自动加载struts-default.xml文件。
包还可以通过abstract="true",定义为抽象包,抽象包中不能包含action。