Struts2.xml中result_type属性说明

来源:互联网 发布:淘宝虚拟充值退款 编辑:程序博客网 时间:2024/06/08 14:35

一.struts2.xmlresult type属性说明

 

1.chain:用来处理Action链,被跳转的action中仍能获取上个页面的值,如request信息。   

   com.opensymphony.xwork2.ActionChainResult   

  

2.dispatcher:用来转向页面,通常处理JSP   

   org.apache.struts2.dispatcher.ServletDispatcherResult   

  

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.xsl:

    处理XML/XLST模板   

   org.apache.struts2.views.xslt.XSLTResult   

  

8.plainText:显示原始文件内容,例如文件源代码   

    org.apache.struts2.dispatcher.PlainTextResult   

  

9.plaintext:显示原始文件内容,例如文件源代码   

   org.apache.struts2.dispatcher.PlainTextResult

 

10.redirect:重定向到一个URL,被跳转的页面中丢失传递的信息,如request 

   org.apache.struts2.dispatcher.ServletRedirectResult   

  

11.redirectAction:重定向到一个Action ,跳转的页面中丢失传递的信息,如request     

   org.apache.struts2.dispatcher.ServletActionRedirectResult   

  

12.redirect-action:重定向到一个Action,跳转的页面中丢失传递的信息,如request     

   org.apache.struts2.dispatcher.ServletActionRedirectResult

 

 

 

 

 

 

二.redirectredirect-action区别

 

一、使用redirect需要后缀名 使用redirect-action不需要后缀名

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

 

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

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

 

附:redirect-action 传递参数

 

Xml代码

<actionname ="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分析配置文件时,总是报出这样的错误:

 

The reference to entity "preinfo"  must end withthe  ';' delimiter.  

The reference to entity "preinfo" must end with the ';'delimiter.

 

进行上面说明的替换后,就正常了。