struts2的resulttype(结果类型)以及dispatcher、redirect和rediraction的区别由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“struts2结果类型”。
个人重新整理版
chain 用来处理Action链,将一个action的执行与另外一个配置好的action 串连起来。用第一个action的getter方法和第二个action的setter方法来完成action之间属性的 复制。com.opensymphony.xwork2.ActionChainResult
dispatcher 用来转向JSP页面,这是默认的结果类型,如果在action配置中没有配置其他的结果类型,它就会被使用
org.apache.struts2.dispatcher.ServletDispatcherResult
freemaker 处理FreeMarker模板
org.apache.struts2.views.freemarker.FreemarkerResult
httpheader 控制特殊HTTP行为的结果类型
org.apache.struts2.dispatcher.HttpHeaderResult redirect 重定向到一个URL org.apache.struts2.dispatcher.ServletRedirectResult
redirectAction 重定向到一个Action org.apache.struts2.dispatcher.ServletActionRedirectResult 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.struts2.dispatcher.PlainTextResult 注:dispatcher、redirect与redirect-action区别
Redirect和dispatcher相对,dispatcher是将请求forward(转发)到指定的JSP资源,而redirect结果类型,意味着将请求redirect(重定向)到指定视图资源。
两者的最大差别主要在于转发和重定向的差别:重定向会丢失所有的请求参数、请求属性----当然也丢失了action的处理结果。
Redirect-action和redirect一样是生成一个全新的请求。但是与redirect的区别在于:redirect-action使用了ActionMapperFactory提供的ActionMapper来重定向请求。
当需要让一个Action处理结束后,直接将请求重定向到另一个Action时,我们应该使用这种结果类型。
配置redirect-action时,可以指定如下两个参数: ActionName:该参数指定重定向的action名字
Namespace:该参数指定重定向的action所在的命名空间
一、使用redirect需要后缀名 使用redirect-action不 需要后缀名
二、type=“redirect” 的值可以转到其它命名空间下的action, 而redirect-action只能转到同一命名空下的 action,因此它可以省略.action的后缀直接写 action的名称。如:
viewTask.action viewTask 附:redirect-action 传递参数
Xml代码
1.2.3.showpreinfo?preinfo.order_number=${preinfo.order_number}&preinfo.company_name=${preinfo.company_name} 4.5.6.
/error.jsp 7.8.因为使用了redirect-action,所以要注意不能将 showpreinf?preinfo.order_number=${preinfo.order_number}写成showpreinf.action?preinfo.order_number=${preinfo.order_number} 其中${}为EL表达式,获取action:enterpreinfo中属性 的值;在这个配置文件里,多个参数的连接符使用了“&”,但XML的语法规范,应该使用“&”代替“&”,原理 和HTML中的转义相同.redirect配置例子
list
${pageBean.pageNumber} 或者
list.action?pageBean.pageNumber=${pageBean.pageNumber}