1.package的配置
Package可以继承,子package既可以继承父package中的配置也可以覆盖。
Package节点的属性:name、extends、namespace、abstract(指定package是否为抽象的,true:不允许有任何关于action的配置)
<package name="aa" extends="struts-default" namespace="/"></package>
<!--下面的package继承上面的package-->
<package name="bb" extends="aa" namespace="/bb"></package>
2.namespace的配置
默认namespace:路径为“”,namespace(“”),可以省略不写,当所有namespace都找不到时,才找这个。
根namespace(“/”):应用程序上下文环境下的请求路径
根namespace(“/”):应用程序上下文环境下的请求路径
3.constant的配置
设置struts2框架的系统参数
在开发阶段,在struts.xml中修改两个常量设置,允许struts2容器自动加载修改过的标注。
<constant name="struts.devMode" value="true"></constant>
<constant name="struts.convention.classes.reload" value="true"></constant>
4.interceptor的配置
struts2的拦截器配置。
<!-- 自定义拦截器. -->
<interceptors>
<interceptor name="loginInterceptor" class=""></interceptor>
<interceptor-stack name="mydefaultStack">
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="loginInterceptor"></interceptor-ref>
</interceptor-stack>
</interceptors>
<!-- 应用自定义拦截器. -->
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="loginInterceptor">
<!-- 拦截器方法过滤 要拦截的方法. -->
<param name="includeMethods">execute</param>
</interceptor-ref>
5.include的配置
将配置文件划分成各个子配置文件,最后又include节点统一配置在一起,struts在解析时会自动搜索。
<struts>
<include file="struts-user.xml"></include>
<include file='struts-admin.xml"></include>
</struts>
6.action的配置
1动态方法调用DMI:在action名后加上 “!XXX”,XXX代表方法名。
2使用通配符*。
2使用通配符*。
7.result的配置
eg:
<result name="">/login.jsp?username=${username}&password=${password}</result>
其中传多个参数时,用户名和密码之间的&连接符要用“&”连接,取值操作用的EL表达式的语法${}
8.result type的配置
1.type=”chain”
从一个action跳转到另一个action2. type=”dispatcher”
请求的转发,result的默认类型。3.httpheader
返回响应信息的头部信息4.redirect
重定向:可以配置JSP、action和网站.5.stream
文件下载的功能 I/O流6.Velocity
与freemarker类似,也是开源的模板引擎。Struts2的默认模板引擎是freemarker,如果项目要在struts2中采用velocity时,需要加jar包
7.Xslt
使用xstl不需要创建jsp等模板文件,但要提供xslt文件所在位置。开发阶段设置xslt不缓存:
<constant name=”struts.xslt.nocache” value=”true”/>
8.plainText
将文本信息原封不动的输出,例如返回一个JSP页面的时候,JSP页面的所有代码内容都会输出。9.JSON
10.全局结果
定义全局结果,当action执行完成后,它会先从自己的<result>节点中匹配,如果匹配不成功,则再从定义好的全局结果中继续查找。<package name="testGlobal" namespace="/" extends="struts-default">
<global-results>
<result name="error">/error.jsp</result>
</global-results>
</package>
11.动态结果映射
<action name="login" class="">
<result>/${resultJsp}</result>
</action>
private String resultJsp;
public String getResultJsp() {
return resultJsp;
}
public void setResultJsp(String resultJsp) {
this.resultJsp = resultJsp;
}
public String execute() {
resultJsp = "login.jsp";
return SUCCESS;
}