`
在水伊方
  • 浏览: 107262 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

Struts2--result配置的各种视图转发类型

阅读更多

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
分享到:
评论

相关推荐

    struts视频教程_result配置的各种视图转发类型

    esult配置的各种视图转发类型esult配置的各种视图转发类型esult配置的各种视图转发类型

    传智播客_result的各种视图转发类型及全局

    传智播客_result的各种视图转发类型及全局

    06result配置的各种视图转发类型

    Struts 2是Struts的下一代产品,是在 struts 和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构的差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理...

    struts2 详解文档

    result配置的各种视图转发类型 为Action属性注入值 指定Struts 2处理的请求后缀 Struts 2的处理流程与Action的管理方式 为应用指定多个配置文件 动态方法调用和使用通配符定义action 请求参数接收 自定义...

    Struts2属性文件详解

    该属性指定加载Struts 2配置文件的配置文件管理器.该属性的默认值是org.apache.Struts2.config.DefaultConfiguration, 这是Struts 2默认的配置文件管理器.如果需要实现自己的配置管理器,开发者则可以实现一个实现...

    Struts2 in action中文版

    第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框架...

    Struts2\constant应用

    该属性指定Struts 2框架默认加载的配置文件,如果需要指定默认加载多个配置文件,则多个配置文件的文件名之间以英文逗号(,)隔开。 该属性的默认值为struts-default.xml,struts-plugin.xml,struts.xml,看到该属性...

    Struts 2标签的应用

    利用Struts 2标签创建ex3.jsp页面,此页面提交给tag.action,在structs.xml中配置这个action的转发视图为result.jsp在result.jsp页面中显示ex3.jsp页面控件的值。(源代码和实验报告)

    demo.zip_action

    struts详细的源码,有Action中result的各种转发类型,多个Action共享一个视图--全局result配置,为Action的属性注入值, 4.指定需要Struts 2处理的请求后缀等等。

    非常不错的中文struts2教程[CHM]

    2、Result机制,让视图更丰富 3、Struts2配置详解 4、Struts2中的Action 5、Struts2中的参数传递 6、标签库,永恒的争论话题 7、拦截器详解 8、配置,灵活还是简单? 9、深入plugin 10、在Struts2中使用OGNL

    深入浅出Struts2(附源码)

    作者处处从实战出发,在丰富的示例中直观地探讨了许多实用的技术,如数据类型转换、文件上传和下载、提高Struts 2应用的安全性、调试与性能分析、FreeMarker、Velocity、Ajax,等等。跟随作者一道深入Struts 2,聆听...

    使用Struts2开发RESTful服务

    REST简介资源和标识符操作资源的方式Struts2的REST支持RestActionMapper简介为Struts2应用安装REST插件实现支持REST的Action类实现视图层参考资料从V2.1开始,Struts2开始提供Convention插件,它允许根据“约定”来...

    深入浅出Struts 2 .pdf(原书扫描版) part 1

    如数据类型转换、文件上传和下载、Struts2应用的安全性、调试与性能分析、FreeMarker、Velocily、Ajax,等等。跟随作者一道深入Struts2。聆听大量来之不易的经验之谈。你对Struts2开发框架的理解和应用水平都将更上...

    Struts in Action中文版

    2. 深入 STRUTS架构..................................................................................37 2.1. 随便谈谈......................................................................................

    struts in Action

    2. 深入STRUTS 架构..................................................................................37 2.1. 随便谈谈.......................................................................................

Global site tag (gtag.js) - Google Analytics