您的位置:首页 > 编程语言 > Java开发

Strut2 的result-type参数详解

2013-08-01 11:04 183 查看
已配置结果类型名 类 名 描 述
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
 将用户重定向到一个已配置好的URL
redirectAction org.apache.struts2.dispatcher.

ServletActionRedirectResult
 将用户重定向到一个已定义好的action
stream 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}&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中属性的值;在这个配置文件里,多个参数的连接符使用了"&",但XML的语法规范,应该使用"&"代替"&",原理和HTML中的转义相同,开始没有注意,在struts分析配置文件时,总是报出这样的错误:

参考地址:

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

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

http://blog.csdn.net/etttttss/article/details/7484915
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息