result配置的各种视图转发类型

转自:http://keveon.iteye.com/blog/996219

Strust2中的几种视图转发类型:

1. dispatcher:服务器端跳转到页面,通常来处理JSP,默认类型。

 

2. redirect:客户端(浏览器)重定向到页面 

Java代码   收藏代码
  1. public String execute() {  
  2.     this.username = "redirect";  
  3.     return "success";  
  4. }   
Xml代码   收藏代码
  1. <action name="redirect" class="com.struts.action.StrutsAction" method="execute">  
  2.     <result name="success" type="redirect">/userAdd.jsp?username=${username }</result>  
  3. </action>    
Html代码   收藏代码
  1. <body>  
  2.      得到请求参数的值 username = ${param.username }  
  3. </body>   

地址栏的变化结果:http://localhost:8080/Struts2/userAdd.jsp?username=redirect

页面显示结果:得到请求参数的值 username = redirect

注:可用el表达式获取action中的属性值 

 

3. redirectAction:服务器端跳转到指定的action 

Java代码   收藏代码
  1. public String execute() {  
  2.     this.username = "redirect";  
  3.     message = "My first Struts2 Application";  
  4.     return "success";  
  5. }   
Xml代码   收藏代码
  1. <package name="struts" namespace="/teacher" extends="struts-default">  
  2.     <action name="hello" class="com.struts.action.StrutsAction" method="execute">  
  3.         <result name="success">/WEB-INF/page/message.jsp</result>  
  4.     </action>  
  5.       
  6.     <action name="redirectAction">  
  7.         <result type="redirectAction">hello</result>  
  8.     </action>  
  9. </package>   
Html代码   收藏代码
  1. <body>  
  2.     message的值:${message }  
  3. </body>   

 地址栏的变化结果:http://localhost:8080/Struts2/teacher/hello

 页面显示结果:message的值:My first Struts2 Application

 

以上是重定向到同一命名空间下的action的情况,如果要重定向到不同命名空间下的action则Struts.xml的配置为:

Xml代码   收藏代码
  1. </package>  
  2.     <package name="struts" namespace="/teacher" extends="struts-default">  
  3.     <action name="hello" class="com.struts.action.StrutsAction" method="execute">  
  4.         <result name="success">/WEB-INF/page/message.jsp</result>  
  5.     </action>  
  6.       
  7.     <action name="redirectAction">  
  8.         <result type="redirectAction">  
  9.             <param name="namespace">/student</param>  
  10.             <param name="actionName">lilei</param>  
  11.         </result>           
  12.     </action>  
  13. </package>  
  14.       
  15. <package name="other" namespace="/student" extends="struts-default">  
  16.     <action name="lilei">  
  17.         <result>/WEB-INF/page/message.jsp</result>  
  18.     </action>  
  19. </package>     

 地址栏的变化结果:http://localhost:8080/Struts2/student/lilei

 

4. plainText:用于显示原始文件内容

Xml代码   收藏代码
  1. <action name="plainText">  
  2.     <result type="plainText">/index.jsp</result>  
  3. </action>    

 要解决中文乱码问题action如下配置:

Xml代码   收藏代码
  1. <action name="plainText">  
  2.     <result type="plainText">  
  3.         <param name="location">/index.jsp</param>  
  4.         <param name="charSet">UTF-8</param>   
  5.     </result>  
  6. </action>  

  

5. 配置公用视图:

Xml代码   收藏代码
  1. <package name="struts" namespace="/teacher" extends="struts-default">  
  2.     <global-results>  
  3.         <result name="manage">/manage.jsp</result>  
  4.     </global-results>  
  5.       
  6.     <action name="manage" class="com.struts.action.StrutsAction" method="add">              
  7.     </action>  
  8. </package>   

此处配置的global-results只可以在当前包中共用 如果想要所有包共用可以将其放入一个base包中 然后让所有package继承这个base包

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值