回忆
在SSH学习系列的SSH学习之Struts2的第一个Action中介绍了Struts2的第一个入门的action,如果是初学的可以不需要深究其中的某些概念,我会在接下来的内容介绍。
位置
Struts2的配置文件struts.xml文件的位置一般默认是在src目录下的,如果想要改变其存放的路径,就需要在web.xml中进行配置,否则就会报错。但是在配置的时候除了将改变后的路径。但是,必须要也要指定struts-default.xml和struts-plugin.xml(struts-plugin.xml这是配插件的,如果没使用插件,这个也可以不配置)。
<!-- 配置Struts2过滤器 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
<init-param>
<param-name>config</param-name>
<param-value>struts-default.xml,config/struts.xml,struts-plugin.xml</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
名称
Struts框架的配置文件名称必须是固定的,struts.xml。
package标签
- name属性:name值跟功能本身是没有相关联系的;在一个struts.xml配置文件中可以有多个package标签,但是name值必须不同。
- extends属性:extends属性值是固定的,其值为struts-default。只有写明了该属性,在package中的类才有action功能(也就是才有访问的功能)。值得注意的是如果有其他的package继承了另一个package,那么最顶级的那个package必须继承struts-default。
- namespace属性:默认值是/,可以不写明,但是推荐初学者写明。其值和action标签中的name值构成action的访问路径。
action标签
- name属性:name属性值就是访问action的路径,其值和namespace属性值构成访问路径。一个package标签中可以有多个action标签,但是name值是唯一的。
- class属性:class属性值就是action的全路径,包名+类名。
- method属性:默认值是execute,可以自定义一个值(值就是action里的方法名),指明action的执行方法。
result标签
result标签根据方法的返回值配置到不同的路径中去,包括页面跳转和action跳转等等。
- name属性:其值是方法的返回值,也就是method属性中指定的方法。
- type属性:其值表示如何到路径中去(重定向或重转发)。默认值是重转发。
- 默认值是dispatcher,重转发(一次请求,地址栏不变),针对跳转页面的配置。
- redirect,重定向(两次请求,地址栏路径改变),针对跳转页面的配置。
- chain,转发action,一般不使用该值转发到其他action,因为存在缓存问题,针对跳转action的配置。
- redirectAction,重定向action,针对跳转action的配置。
constant标签
constant标签用来配置或修改Struts2框架里默认的常量的,Struts2中默认常量的配置是在struts-default.xml(struts2-core-xx.jar)文件中,
比如字符编码
等。以下是一些常用的常量设置。
- struts.i18n.encoding,指明表单提交数据的编码格式(post和get都可以,这与servlet不同,post可以直接指定编码,get需要进行编码转换)。
- struts.devMode,是否使用struts的开发模式。开发模式会有更多的调试信息。默认值为false(生产环境下使用),开发阶段最好打开。
- struts.action.extension,指定被struts2处理的请求后缀类型。多个后缀名用逗号隔开。
在实际开发中可能还需要设置其他的一些常量,大家可以参看Struts2的API。
多余的话
这是我的一些理解了,希望见谅
。
![奋斗](http://static.blog.csdn.net/xheditor/xheditor_emot/default/struggle.gif)