Struts2笔记 - 03 result配置的各种视图转发类型
result配置的各种视图转发类型
?
Strust2中的几种转发类型
dispatcher(默认)、redirect、redirectAction、plainText
<result type="redirect">/xxx.jsp</result>
■<------------redirect--------->
【ognl表达式】
<action name="redirect" name="code">package struts2.demo.action;public class DemoAction{ private String uid; public void setUid(String uid){ this.uid=uid; } public String getUid(){ return this.uid; } public String execute(){ this.setUid("ABC"); return "success"; }}
?
?
这样重定向之后的页面路径为
http://127.0.0.1:8080/Struts2/target.jsp?uid=ABC
注意:如果要传递中文则需要编码
URLEncoder.encode("中文","utf-8");
?
?
在jsp页面上可以采用${param.uid}来获取参数值 如果值为中文需要转码
URLDecoder.decode(new String(request.getParameter("uid").getBytes("ISO-8859-1"),"utf-8"),"utf-8");
?
?
■<------------redirectAction--------->
<action name="redirect" name="code"><package name="pack1" namespace="/demo" extends="struts-default"><action name="helloworld" namespace="/demo" extends="struts-default"><action name="redirect" name="code"><result type="plainText"> <param name="location">helloworld</param> <param name="charSet">utf-8</param></result>
?
■配置共用视图
<package name="pack1" namespace="/demo" extends="struts-default"><global-results> <result name="head">/WEB-INF/skin/head.jsp</result></global-results><action name="helloworld" name="code">public class HelloWorldAction{ public String execute(){ return "head"; }}
?
此处配置的global-results只可以在当前包中共用 如果想要所有包共用可以将其放入一个base包中 然后让所有package继承这个base包