关联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文件中的具体配置如下:
在StrutsPrepareAndExecute的init()方法中将会读取类路径下默认的配置文件struts.xml
完成初始化操作。
注:struts2读取到配置文件struts.xml的内容后,以javaBean的形式存放在内存中,以后
struts2对用户的每次请求处理将使用内存中的数据,而不是每次读取struts.xml文件。
struts.xml文件的具本配置如下:
在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。