`
在水伊方
  • 浏览: 111014 次
  • 性别: 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
分享到:
评论

相关推荐

    struts2-showcase.rar

    这个压缩包“struts2-showcase.rar”包含了完整的源代码,旨在帮助开发者深入理解Struts2框架的工作原理及其各种特性。以下是对Struts2和Struts2-showcase的详细解释: **Struts2框架** Struts2是一个基于MVC...

    struts2-core-2.0.12.jar

    Struts2的配置主要在struts.xml文件中进行,这里定义了Action的映射、结果类型、拦截器栈等。开发者可以通过XML或注解方式来配置Action,使应用更加灵活。 **4. 拦截器(Interceptors)** 拦截器是Struts2的一大...

    struts2-core-2.0.11源码

    5. **结果类型(Result Types)**:`org.apache.struts2.dispatcher.mapper`包中的`ResultMapper`接口及其实现类,定义了如何根据Action的结果名映射到实际的视图资源,比如JSP页面或FreeMarker模板。 6. **插件...

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

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

    Struts2-2.5.13最新jar下载

    在下载并使用Struts2-2.5.13的jar包时,开发者需要将其加入到项目的类路径中,同时根据项目需求配置struts2.xml或使用注解进行配置。对于初次使用者,建议阅读官方文档,了解如何初始化Struts2框架,以及如何编写...

    struts-2.5.22-all.zip

    在实际开发中,使用Struts2 2.5.22时,开发者需要了解Action、Result、Interceptor的基本概念,以及如何编写Action类、配置Struts.xml文件,还要掌握OGNL的使用来绑定数据。同时,为了提高安全性和性能,还需要关注...

    struts2-2.3.4.1-all

    Struts2允许开发者自定义Action和Result类型,以适应不同的业务需求。 2. **拦截器(Interceptor)**:这是Struts2的一个强大特性,它可以拦截Action调用前后,实现事务管理、日志记录、权限验证等功能。通过配置...

    struts2-core-2.3.7源码

    7. **Plug-in架构**: Struts2的插件机制允许扩展其功能,如添加新的拦截器、结果类型等。 在`struts2-core-2.3.7`版本中,我们可以看到以下几个关键组件: 1. **StrutsPrepareAndExecuteFilter**: 这是Struts2的...

    struts2-tags-文档.rar

    Struts2是一个强大的Java web应用程序框架,它基于MVC(模型-视图-控制器)设计模式,用于构建可维护性和可扩展性高的企业级应用。Struts2的标签库是其核心特性之一,极大地简化了视图层的开发,提高了开发效率。本...

    struts2 相关jar包 包含json-lib-2.1.jar+struts2-json-plugin-2.1.8.1.jar

    - **配置文件**:通常有struts.xml或类似的配置文件,用于定义Action、结果类型、拦截器栈等。 4. **使用步骤**: - 引入必要的JAR包,包括struts2-core.jar、json-lib-2.1.jar和struts2-json-plugin-2.1.8.1.jar...

    struts2-blank

    2. **配置文件**:主要指`struts.xml`,这是Struts2的核心配置文件,用于定义Action、Action的映射路径、Interceptor链以及Result类型等。 3. **Interceptor**:Struts2允许开发者自定义Interceptor,实现特定的...

    struts2-core-2.2.1 jar下载、源码下载 非常全面!!绝对可用!! 所需资源分最少。

    `struts2-core-2.2.1`源码可以帮助开发者查看和学习Struts2的核心代码,理解其内部机制,如Action、Interceptor、Result等概念,以及它们如何协同工作以实现HTTP请求的处理和视图的渲染。 API文档是框架的重要组成...

    struts2-sitemesh-plugin-2.2.1.1.jarstruts2

    Struts2是一个非常流行的Java Web开发框架,它提供了一种模型-视图-控制器(MVC)架构,帮助开发者构建可维护、结构清晰的Web应用。Sitemesh则是一个页面布局和装饰框架,用于统一网站的外观和感觉,增强页面的...

    struts2-blank-2.0.14的lib中的jar包

    - `struts2-core.jar`: 这是Struts2的核心库,包含了Action、Result、Interceptor等核心类,以及配置解析器和ActionContext等。它是处理HTTP请求、执行业务逻辑和渲染视图的核心。 2. **插件支持** - `struts2-...

    struts2-json-plugin-2.3.8.jar

    Struts2 JSON Plugin是Apache Struts框架的一个重要插件,主要功能是使Struts2能够无缝地处理JSON(JavaScript Object Notation)数据。这个插件极大地增强了Struts2应用程序的可交互性和响应速度,尤其在开发Web...

    struts2-lib

    - **Result类型**:定义了Action执行后的处理方式,如转发、重定向、渲染视图等。 - **配置文件**:`struts.xml`是Struts2的核心配置文件,定义了Action、Interceptor、Result等元素。 - **插件系统**:Struts2支持...

    struts2-core-2.3.32和xwork-core-2.3.32

    XWork则是Struts2的基础框架,提供了一系列底层功能支持,如类型转换、拦截器机制等。 标题提到的"struts2-core-2.3.32"和"xwork-core-2.3.32"是Struts2框架的重要组成部分。"struts2-core-2.3.32.jar"包含了Struts...

    struts2-core-2.1.8.1.jar

    Struts2是一个非常著名的Java ...开发者可以利用Struts2的Action、Interceptor、Result等机制,结合Apache Commons库和FreeMarker模板引擎,轻松地管理业务逻辑、处理用户输入、呈现视图,从而提高开发效率和应用质量。

    struts2-core-2.1.8.1 xwork-core-2.1.6源码

    4. **配置管理(Configuration Manager)**:Struts2的配置管理器负责读取配置文件(如struts.xml),并将配置信息加载到内存中。这部分代码主要位于`com.opensymphony.xwork2.config`包下,包括`Configuration`接口...

Global site tag (gtag.js) - Google Analytics