一、配置讲解:
1 <struts> 2 3 <package name="oop" namespace="/" extends="struts-default"> 4 <action name="hello" class="jd.com.action.SayHello" method="helloSttust"> 5 <result name="oop" >demo/re.jsp</result> 6 </action> 7 8 </package> 9 10 </struts>
package标签:
1)package标签,name名字可以随便起,但是在strust.xml文件中,要保持唯一。
2)namespace:命令空间,表示访问的url以什么开始。比如说上面写:namespace="/aa/cc/",那么这个访问地址应该是:/aa/cc/hello.action。 一般默认是根/,这个需要配合下面的action中的name一起使用组成相对访问url。
3)extends:继承的意思,继承那个package。默认值就是:struts-default。一般不做修改。使用默认值。
4)abstract:很少使用,这个标签设置成true的话,表示这个包可以被继承。
action标签:代表配置action类。
name:和packa标签一起决定访问的路径。
class:Action类的全路径,如果不配置有默认值:ActionSupport。很少使用。
method:Action类执行的方法,如果不指定默认是execute方法。
result标签:
action类中方法执行,返回结果跳转页面。
name:action类执行方法的返回的逻辑视图名称。
type:结果类型,(默认值是转发 也可以写其他值。)
二、配置常量:
之前介绍过,最后加载的配置文件。会覆盖之前配置文件加载过的相同配置。
因为我们不能修改default.properites、default-strust.xml 等配置文件,因为他是在源码中。如果想修改需要重新打jar 包。
那么我们可以在别的配置文件中修改。
可以配置常量的文件:
1、strust.xml
2、web.xml
这里建议配置在strust.xml文件中。
常量介绍:
1、struts.action.extension=action,,
访问url后缀,是以action结尾或者不添加。
2、struts.i18n.encoding=UTF-8
编码设置,但是这个只作用用post方法,即只能作用于:httprequst的setCharacterEncoding方法。
3、struts.devMode = false
开发模式,如果打开的话,会输出更加详细的信息。
4、struts.serve.static.browserCache=true
浏览器设置静态资源缓存。生产环境使用,如果开发环境建议关闭。
配置常量:
在strust.xml文件中使用标签:constant,位置和package标签同一级。
1 <!--设置访问后缀--> 2 <constant name="struts.action.extension" value="do,," />
在web.xml中,添加常量:
需要在strustprepareandexecuterfilter的中初始参数。
1 <filter> 2 <filter-name>struts2</filter-name> 3 <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 4 <init-param> 5 <param-name>struts.action.extension</param-name> 6 <param-value>action,,</param-value> 7 </init-param> 8 </filter>
因为后加载的配置文件会覆盖之前的配置文件。所以web.xml加完常量之后,会覆盖strust.xml
三、strust.xml配置文件 包含子配置文件。
比如在日常的开发的过程中,如果想一个包里一个配置文件。需要在主配置文件中引入:
1 <include file="jd/com/imaction/text.xml" />
include标签在strust标签外面和package标签同级。