Struts2应用的开发步骤
导入必要的包
通过MyEclipse对项目导入Struts2包,一般只需要导入core这个包就可以。如果要想手动导入,则需要将commons-logging, freemarker, ognl, struts2-core, xwork-core, commons-fileupload, jacassist, commons-long3这几个包复制到web-inf下的lib文件夹下。或者直接使用MyEclipse自带的增加Struts2的capacities的方法,选定user library。
编写配置文件
应该在web.xml中定义核心Filter来拦截用户请求。要注意Struts2框架是通过Filter启动的。如果使用的是MyEclipse自动导入的jar包,则在web.xml中已经为我们配置好了相关Filter信息。配置代码如下:
<filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
这段代码规定对于所有的请求,都使用class中规定的拦截器进行拦截。如果使用MyEclipse增加capacities,则这些配置会自动生成。
定义处理用户请求的Action类,配置Action。
配置处理结果与物理视图之间的映射关系。
编写视图资源。
Struts2的常规配置
Struts2的默认配置文件是sturts.xml,它在src文件夹下。这个文件用于配置Action与请求之间的对应关系,并且将逻辑视图(也就是action方法的返回字符串)与物理视图(实际需要显示的jsp页面)联系起来。此外,还可以在这个文件中配置一些常量,也可以包含其他配置文件,或者对Bean进行配置。
常量配置
struts2可以利用properties文件或者xml来配置常量(同样都放在src文件夹,或者WEB-INF/classes路径下,因为现在的IDE在编译的时候,会将src下的非java文件移到WEB-INF/classes下),也可以通过web.xml来配置。无论何种方式配置,每个常量都要有name跟value两个值。由于Struts2的常量相当于对整个Struts2应用起作用,因此有时候这些常量也被称为Struts2属性。通过查找core包下的org.apache.struts2下的default.properties文件,我们可以知道哪些属性(常量)是有效的。
若想在struts.xml中自定义常量,则需要在struts根元素中使用constant子元素。若在web.xml中配置,则需要在全局filter中使用init-param子元素。
当Struts2框架启动的时候,会按照一定顺序加载常量。首先是struts-default.xml,然后是struts-plugin.xml,struts.xml,struts.properties,web.xml。所以,对于同样名字的常量,后边的会覆盖前面的。
包含其它配置文件
为了避免struts.xml过于臃肿,我们可以让它包含其它配置文件而减少它的代码。只需要在struts根元素下面使用include子元素即可实现模块化管理配置文件。被包含进来的文件是一个标准的Struts2配置文件,一样包含了DTD信息,根元素等。通常这些配置文件都在同一个文件夹下。
常见问题:
1. The type java.util.Map$Entry cannot be resolved. It is indirectly referenced from required .class files
将jdk换成1.6或者1.7,remove掉1.8即可。
本文出自 “指尖轻飞” 博客,谢绝转载!
原文地址:http://mengcao.blog.51cto.com/9395052/1686685