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使用公共视图就这样定义全局视图