java_Struts2在Action中result的四种转发类型

部分内容是网上转载的,自己整合了一下

在struts2中为result提供了多种类型,常用的类型有:dispatcher(默认),redirect,redirectAction,plainText。

在result中还可以使用${属性名}访问action中的属性,表达式中的属性名对应action中的属性。

<resulttype="redirect">/index.jsp?id=${id}</result> 

1.redirect是重定向到某个路径、视图

<!--  直接重定向  -->
<action name="redirect">
   <result type="redirect">/employeeAdd.jsp?username=${username}</result>
</action>
URLEncoder.encode("传智播客","UTF-8");
取值解码
在前台<% = URLDecoder.decode(new String(request.getParameter("username").getBytes("ISO8859-1"),"UTF-8"),"UTF-8") %>

2.redirectAction重定向到Action

如果重定向的action中在同一个package下:

<result type="redirectAction">helloworld</result>  

如果重定向的action在别的package下:

<result type="redirectAction">              
    <param name="namespace">/login</param>  
    <param name="actionName">list</param></result> 

3.当需要显示文件内容,比如:原样显示jsp文件源代码时就用plainText

<result name="source" type="plainText">  
        <param name="location">/index.jsp</param>  
        <!-- 指定读取文件的编码 -->  
        <param name="charSet">UTF-8</param>  
</result> 

---------------------------------------------------------------------------------

为Action的属性注入值
要实现依赖注入必须提供Set方法

<package name="itcast" namespace="/control/employee"  extends="struts-default">
   <action name="list" class="cn.itcast.action.HelloWorldAction" method="execute">
   <!--给Action中的savepath属性注入的值  -->
<param name="savepath">/images</param>
<result name="success">/WEB-INF/page/message.jsp</result> </action> </package>

全局视图的
这段代码放在某个<package></package>代码段中的Action是公用视图外如果想定义全局的话可以

<package name="base" extends="struts-default">
  <global-results>
    <result name="message">/WEB-INF/page/message.jsp</result>
   </global-results>
</package>

其它包继承 extentds="base"就OK 各个包中的Action使用公共视图就这样定义全局视图

原文地址:https://www.cnblogs.com/hwj2wj/p/2824778.html