Strut2 的result-type参数详解

来源:互联网 发布:终极一班武器淘宝 编辑:程序博客网 时间:2024/04/29 02:56

已配置结果类型名 类 名 描 述dispatcher org.apache.struts2.dispatcher.
ServletDispatcherResult
 默认结果类型,用来呈现JSP页面chain com.opensymphony.xwork2.
ActionChainResult
 将action和另外一个action链接起来freemarker org.apache.struts2.views.freemarker.
FreemarkerResult
 呈现Freemarker模板httpheader org.apache.struts2.dispatcher.
HttpHeaderResult
 返回一个已配置好的HTTP头信息响应redirect org.apache.struts2.dispatcher.
ServletRedirectResult
 将用户重定向到一个已配置好的URLredirectAction org.apache.struts2.dispatcher.
ServletActionRedirectResult
 将用户重定向到一个已定义好的actionstream org.apache.struts2.dispatcher.
StreamResult
 将原始数据作为流传递回浏览器端,
该结果类型对下载的内容和图片非常有用
velocity org.apache.struts2.dispatcher.
VelocityResult
 呈现Velocity模板xslt org.apache.struts2.views.xslt.
XSLTResult
 呈现XML到浏览器,
该XML可以通过XSL模板进行转换
plaintext org.apache.struts2.dispatcher.
PlainTextResult
 返回普通文本类容

以上是struts2的几种常见result-type的类型。接下来做一个详细介绍:


1. dispatcher   
  
    用来转向页面,通常处理JSP   
  
    org.apache.struts2.dispatcher.ServletDispatcherResult   

2. chain   
  
    用来处理Action链,被跳转的action中仍能获取上个页面的值,如request信息。   
  
    com.opensymphony.xwork2.ActionChainResult   
   
3. freemaker   
  
    处理FreeMarker模板   
  
    org.apache.struts2.views.freemarker.FreemarkerResult   
  
4 .httpheader   
  
    控制特殊HTTP行为的结果类型   
  
    org.apache.struts2.dispatcher.HttpHeaderResult   
 

5. stream   
  
    向浏览器发送InputSream对象,通常用来处理文件下载,还可用于返回AJAX数据   
  
    org.apache.struts2.dispatcher.StreamResult   
  
6. velocity   
  
    处理Velocity模板   
  
    org.apache.struts2.dispatcher.VelocityResult   
  
7. xslt   
  
    处理XML/XLST模板   
  
    org.apache.struts2.views.xslt.XSLTResult   
  
8. plainText   
  
    显示原始文件内容,例如文件源代码   
  
    org.apache.struts2.dispatcher.PlainTextResult   
9. redirect   
  
    重定向到一个URL ,被跳转的页面中丢失传递的信息,如request  
  
    org.apache.struts2.dispatcher.ServletRedirectResult   
  
10 redirect-action   
  
    重定向到一个Action ,跳转的页面中丢失传递的信息,如request     
  
    org.apache.struts2.dispatcher.ServletActionRedirectResult

 *******************************************************************************************************************************************8 
注:redirect与redirect-action区别

一、使用redirect需要后缀名 使用redirect-action不需要后缀名
二、type="redirect" 的值可以转到其它命名空间下的action,而redirect-action只能转到同一命名空下的 action,因此它可以省略.action的后缀直接写action的名称。

如:

(1) redirect传递参数

<result name="success" type="redirect">viewTask.action</result>
<result name="success" type="redirect-action">viewTask</result>

(2) 附:redirect-action 传递参数
<action name="enterpreinfo" class="preinfoBusinessAction"    method="enterPreinfoSub">  
  <result name="success" type="redirect-action">  
     showpreinfo?preinfo.order_number=${preinfo.order_number}&amp;preinfo.company_name=${preinfo.company_name}   
  </result>  
 <result name="error" type="redirect">  
    <param name="location">/error.jsp</param>  
 </result>  
</action>  

   因为使用了redirect-action,所以要注意不能将 showpreinf?preinfo.order_number=${preinfo.order_number}写成 showpreinf.action?preinfo.order_number=${preinfo.order_number}

其中${}为EL表达式,获取action:enterpreinfo中属性的值;在这个配置文件里,多个参数的连接符使用了"&amp;",但XML的语法规范,应该使用"&amp;"代替"&",原理和HTML中的转义相同,开始没有注意,在struts分析配置文件时,总是报出这样的错误:

参考地址:

http://wangguorui89.iteye.com/blog/1105570

http://blog.knowsky.com/188302.htm

http://blog.csdn.net/etttttss/article/details/7484915



原创粉丝点击