Strust2中的几种视图转发类型:
1. dispatcher:服务器端跳转到页面,通常来处理JSP,默认类型。
2. redirect:客户端(浏览器)重定向到页面,下面举个例子说明一下redirect视图转发,需要注意的是,由于是浏览器进行重定向,所以要把重定向的页面放在WebContent下面,否则无法访问
下面是struts.xml配置文件:
<package name="struts" namespace="/test" extends="struts-default"> <action name="redirect" class="com.struts.action.RedirectAction" method="execute"> <result name="success" type="redirect">/redirect.jsp?message=${message }</result> </action> </package>
下面是RedirectAction:
package com.struts.action; public class RedirectAction { private String message; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public String execute() { this.message = "This is a redirect test"; return "success"; } }
下面是需要重定向的redirect.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>redirect视图转发</title> </head> <body> message : ${param.message } </body> </html>
部署项目到服务器,在地址栏中输入http://localhost:8080/strutsdemo/test/redirect
则redirect.jsp显示message : This is a redirect test
浏览器地址栏变化结果:http://localhost:8080/strutsdemo/redirect.jsp?message=This%20is%20a%20redirect%20test
注:可用el表达式获取action中的属性值
3. redirectAction:服务器端跳转到指定的action,下面举个例子说明一下redirectAction视图的转发
下面是struts.xml配置文件:
<package name="struts" namespace="/test" extends="struts-default"> <action name="testAction" class="com.struts.action.RedirectActionAction" method="execute"> <result name="success" type="dispatcher">/WEB-INF/pages/redirectAction.jsp?message=${message }</result> </action> <action name="redirectAction"> <result name="success" type="redirectAction">testAction</result> </action> </package>
下面是RedirectActionAction:
package com.struts.action; public class RedirectActionAction { private String message; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public String execute() { this.message = "This is a redirectAction test"; return "success"; } }
下面是需要重定向的redirectAction.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>redirectAction视图转发</title> </head> <body> message : ${param.message } </body> </html>
部署项目到服务器,在地址栏中输入http://localhost:8080/strutsdemo/test/redirectAction
则redirect.jsp显示message : This is a redirectAction test
浏览器地址栏变化结果:http://localhost:8080/strutsdemo/test/testAction.action
以上是重定向到同一命名空间下的action的情况,如果要重定向到不同命名空间下的action则Struts.xml的配置为:
<struts> <package name="struts" namespace="/test" extends="struts-default"> <action name="testAction" class="com.struts.action.RedirectActionAction" method="execute"> <result name="success" type="dispatcher">/WEB-INF/pages/redirectAction.jsp?message=${message }</result> </action> </package> <package name="other" namespace="/test2" extends="struts-default"> <action name="redirectAction"> <result name="success" type="redirectAction"> <param name="namespace">/test</param> <param name="actionName">testAction</param> </result> </action> </package> </struts>
演示实例步骤参考上面,测试结果是一样的
4. plainText:用于显示原始文件内容
配置文件:
<action name="plainText" class="com.struts.action.PlainTextAction" method="execute"> <result name="success" type="plainText">/WEB-INF/pages/plainText.jsp</result> </action>
下面是PlainTextAction:
package com.struts.action; public class PlainTextAction { public String execute() { return "success"; } }
下面是plainText.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>plainText视图转发</title> </head> <body> <%= new Date(); %> </body> </html>
测试结果:如plainText.jsp
要解决中文乱码问题action如下配置:
<action name="plainText"> <result type="plainText"> <param name="location">/WEB-INF/pages/plainText.jsp</param> <param name="charSet">UTF-8</param> </result> </action>
5. 配置公用视图:
配置文件:
<struts> <package name="global" namespace="/global" extends="struts-default"> <global-results> <result name="success">/WEB-INF/pages/global.jsp</result> </global-results> </package> <package name="struts" namespace="/test" extends="global"> <action name="globalResultAction" class="com.struts.action.GlobalResultAction" method="execute"> <param name="namespace">/global</param> </action> </package> </struts>
从配置可以看出,配置文件中的package也像我们java中的包一样,可以继承
GlobalResultAction:
package com.struts.action; public class GlobalResultAction { private String message; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public String execute() { this.message = "This is a globalResult test"; return "success"; } }
global.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>globalResult视图</title> </head> <body> message : ${message } </body> </html>
在浏览器地址栏输入:http://localhost:8080/strutsdemo/test/globalResultAction
页面显示:message : This is a globalResult test
相关推荐
esult配置的各种视图转发类型esult配置的各种视图转发类型esult配置的各种视图转发类型
传智播客_result的各种视图转发类型及全局
Struts 2是Struts的下一代产品,是在 struts 和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构的差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理...
result配置的各种视图转发类型 为Action属性注入值 指定Struts 2处理的请求后缀 Struts 2的处理流程与Action的管理方式 为应用指定多个配置文件 动态方法调用和使用通配符定义action 请求参数接收 自定义...
该属性指定加载Struts 2配置文件的配置文件管理器.该属性的默认值是org.apache.Struts2.config.DefaultConfiguration, 这是Struts 2默认的配置文件管理器.如果需要实现自己的配置管理器,开发者则可以实现一个实现...
第1章 Struts 2:现代Web框架 2 1.1 Web应用程序:快速学习 2 1.1.1 构建Web应用程序 2 1.1.2 基础技术简介 3 1.1.3 深入研究 6 1.2 Web应用程序框架 7 1.2.1 什么是框架 7 1.2.2 为什么使用框架 8 1.3 Struts 2框架...
该属性指定Struts 2框架默认加载的配置文件,如果需要指定默认加载多个配置文件,则多个配置文件的文件名之间以英文逗号(,)隔开。 该属性的默认值为struts-default.xml,struts-plugin.xml,struts.xml,看到该属性...
利用Struts 2标签创建ex3.jsp页面,此页面提交给tag.action,在structs.xml中配置这个action的转发视图为result.jsp在result.jsp页面中显示ex3.jsp页面控件的值。(源代码和实验报告)
struts详细的源码,有Action中result的各种转发类型,多个Action共享一个视图--全局result配置,为Action的属性注入值, 4.指定需要Struts 2处理的请求后缀等等。
2、Result机制,让视图更丰富 3、Struts2配置详解 4、Struts2中的Action 5、Struts2中的参数传递 6、标签库,永恒的争论话题 7、拦截器详解 8、配置,灵活还是简单? 9、深入plugin 10、在Struts2中使用OGNL
作者处处从实战出发,在丰富的示例中直观地探讨了许多实用的技术,如数据类型转换、文件上传和下载、提高Struts 2应用的安全性、调试与性能分析、FreeMarker、Velocity、Ajax,等等。跟随作者一道深入Struts 2,聆听...
REST简介资源和标识符操作资源的方式Struts2的REST支持RestActionMapper简介为Struts2应用安装REST插件实现支持REST的Action类实现视图层参考资料从V2.1开始,Struts2开始提供Convention插件,它允许根据“约定”来...
如数据类型转换、文件上传和下载、Struts2应用的安全性、调试与性能分析、FreeMarker、Velocily、Ajax,等等。跟随作者一道深入Struts2。聆听大量来之不易的经验之谈。你对Struts2开发框架的理解和应用水平都将更上...
2. 深入 STRUTS架构..................................................................................37 2.1. 随便谈谈......................................................................................
2. 深入STRUTS 架构..................................................................................37 2.1. 随便谈谈.......................................................................................