Posted on 2012-06-01 12:56
为自己代言 阅读(413)
评论(0) 编辑 收藏
我们大部分情况使用默认的或者
chain或者redirect,其实struts2还有很多其他类型的,今天我们就来看一下都有哪些类型。
struts2的源码中struts-default.xml文件有全部类型下边解释下:
类型 |
chain |
描述 |
用来处理Action链,被跳转的action中仍能获取上个页面的值,如request信息。 |
使用的类 |
com.opensymphony.xwork2.ActionChainResult |
类型 |
dispatcher |
描述 |
用来转向页面,通常处理JSP |
使用的类 |
org.apache.struts2.dispatcher.ServletDispatcherResult |
类型 |
freemaker |
描述 |
处理FreeMarker模板 |
使用的类 |
org.apache.struts2.views.freemarker.FreemarkerResult |
类型 |
httpheader |
描述 |
控制特殊HTTP行为的结果类型 |
使用的类 |
org.apache.struts2.dispatcher.HttpHeaderResult |
类型 |
stream |
描述 |
向浏览器发送InputSream对象,通常用来处理文件下载,还可用于返回AJAX数据 |
使用的类 |
org.apache.struts2.dispatcher.StreamResult |
类型 |
velocity |
描述 |
处理Velocity模板 |
使用的类 |
org.apache.struts2.dispatcher.VelocityResult |
类型 |
xslt |
描述 |
处理XML/XLST模板 |
使用的类 |
org.apache.struts2.views.xslt.XSLTResult |
类型 |
plainText |
描述 |
显示原始文件内容,例如文件源代码 |
使用的类 |
org.apache.struts2.dispatcher.PlainTextResult |
类型 |
plaintext |
描述 |
显示原始文件内容,例如文件源代码 |
使用的类 |
org.apache.struts3.dispatcher.PlainTextResult |
类型 |
redirect |
描述 |
重定向到一个URL ,被跳转的页面中丢失传递的信息,如request |
使用的类 |
org.apache.struts2.dispatcher.ServletRedirectResult |
类型 |
redirectAction |
描述 |
重定向到一个Action ,跳转的页面中丢失传递的信息,如request |
使用的类 |
org.apache.struts2.dispatcher.ServletActionRedirectResult |
类型 |
redirect-action |
描述 |
重定向到一个Action ,跳转的页面中丢失传递的信息,如request |
使用的类 |
org.apache.struts2.dispatcher.ServletActionRedirectResult |
例子:
<?xml version="1.0" encoding="GBK" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"
http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="venderInterface" namespace="/venderInterface" extends="cardman-default">
<action name="venderInterface_*" method="{1}" class="com.jd.card.web.action.venderInterface.VenderInterfaceAction">
<result name="list">/WEB-INF/vm/venderInterface/venderInterface_list.vm</result>
<result name="toList" type="chain">venderInterface_list</result>
<result name="toAdd">/WEB-INF/vm/venderInterface/venderInterface_add.vm</result>
<result name="toEdit">/WEB-INF/vm/venderInterface/venderInterface_edit.vm</result>
</action>
</package>
</struts>
解释下chain 这是一个action 链,就是一个action 走完后,接下另一个action 走,而且会把最后一个action 的数据带回到页面上.
<result name="toList" type="chain">venderInterface_list</result>注意这个节点里是某个action名字
两个action 传递参数(type="chain"):
第一个 action 值栈中的数据到第二个action 中会共享,不过两个action的中成员变量名字要一致(都得有set/get方法).
另一种赋值方式:直接向值栈中放/取下面代码:
//传送参数用;
放: ActionContext.getContext().put("venderId",cvi.getVenderId());
取: ActionContext.getContext().getContextMap().get("key");
apache HttpServer 默认配置请求转发是项目根路径,如果项目中有另外路径访问地址:例如:webService 地址,如果不配置apache ,就访问不到这个URL(apache 转发请求是可配置的);