转自:http://keveon.iteye.com/blog/996219
Strust2中的几种视图转发类型:
1. dispatcher:服务器端跳转到页面,通常来处理JSP,默认类型。
2. redirect:客户端(浏览器)重定向到页面
- public String execute() {
- this.username = "redirect";
- return "success";
- }
- <action name="redirect" class="com.struts.action.StrutsAction" method="execute">
- <result name="success" type="redirect">/userAdd.jsp?username=${username }</result>
- </action>
- <body>
- 得到请求参数的值 username = ${param.username }
- </body>
地址栏的变化结果:http://localhost:8080/Struts2/userAdd.jsp?username=redirect
页面显示结果:得到请求参数的值 username = redirect
注:可用el表达式获取action中的属性值
3. redirectAction:服务器端跳转到指定的action
- public String execute() {
- this.username = "redirect";
- message = "My first Struts2 Application";
- return "success";
- }
- <package name="struts" namespace="/teacher" extends="struts-default">
- <action name="hello" class="com.struts.action.StrutsAction" method="execute">
- <result name="success">/WEB-INF/page/message.jsp</result>
- </action>
- <action name="redirectAction">
- <result type="redirectAction">hello</result>
- </action>
- </package>
- <body>
- message的值:${message }
- </body>
地址栏的变化结果:http://localhost:8080/Struts2/teacher/hello
页面显示结果:message的值:My first Struts2 Application
以上是重定向到同一命名空间下的action的情况,如果要重定向到不同命名空间下的action则Struts.xml的配置为:
- </package>
- <package name="struts" namespace="/teacher" extends="struts-default">
- <action name="hello" class="com.struts.action.StrutsAction" method="execute">
- <result name="success">/WEB-INF/page/message.jsp</result>
- </action>
- <action name="redirectAction">
- <result type="redirectAction">
- <param name="namespace">/student</param>
- <param name="actionName">lilei</param>
- </result>
- </action>
- </package>
- <package name="other" namespace="/student" extends="struts-default">
- <action name="lilei">
- <result>/WEB-INF/page/message.jsp</result>
- </action>
- </package>
地址栏的变化结果:http://localhost:8080/Struts2/student/lilei
4. plainText:用于显示原始文件内容
- <action name="plainText">
- <result type="plainText">/index.jsp</result>
- </action>
要解决中文乱码问题action如下配置:
- <action name="plainText">
- <result type="plainText">
- <param name="location">/index.jsp</param>
- <param name="charSet">UTF-8</param>
- </result>
- </action>
5. 配置公用视图:
- <package name="struts" namespace="/teacher" extends="struts-default">
- <global-results>
- <result name="manage">/manage.jsp</result>
- </global-results>
- <action name="manage" class="com.struts.action.StrutsAction" method="add">
- </action>
- </package>
此处配置的global-results只可以在当前包中共用 如果想要所有包共用可以将其放入一个base包中 然后让所有package继承这个base包