使用多个struts配置文件:
在struts中加入<include file="xx.xml"/>来引入配置文件
如果在其他包下,使用路径/xx/xx/xx.xml
配置默认的action
在package的namespace下,如果没有找到这个aciton就会报错,如果在package中加入配置:
<default-action-ref name="xxx"/>
name值为在此package中的一个aciton的name。
这样,没有找到action时,会转到defaultaction。
Result类型
如:
<result type="dispatcher">
/xx.jsp
</result>
不写,默认为dispatcher。跳转到另一个jsp。
其他:
redirect,客户端跳转。
chain跳转到另一个aciton,访问action时不要加"/",如果action在另外一个namespace里,应该这样写:
<result type="chain">
<param name="actionName">xxxx</param>
<param name="namespace">/xxx</param>
</result>
redirectAction,客户端跳转到action。
freemarker 模板框架。
httpheader发送头信息。
stream下载
velocity 模板框架。
xslt 与xml相关的修饰。
plaintext 把页面jsp源码发送到客户端。
tiles 分块指定页面。
全局结果集
就是在所有action中,都可以返回到这个结果集。在配置文件的package中定义:
<global-results>
<result name="main">/main.jsp</result>
</global-results>
如果一个package中的action想访问另一个package中的全局结果集,可以让这个package集成一个包,而每个package默认继承struts-default
。父package必须继承默认struts-default。
动态结果集
<result>${xxx}</result>
这是从值栈中取内容,专门用在配置文件中使用的ognl。
带参数的结果集
主要用于redirect传值。
<result type="redirect">/xx.jsp?t=${xxx}</result>
这样的方式浏览器会再发送请求到xx.jsp?t=xx,因为直接访问的jsp页面,所以值栈是空的。页面取值可以从:
<s:property value="#parameters.t"/> ActionContext中可以取值。