`
mushme
  • 浏览: 789996 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

运用chain进行跳转

 
阅读更多
struts2里的result的chain,可以将action串成一个链,从而实现自定义的跳转,redirect类型的url会变更,chain不会变更,这个是最大的差别,chain里的值栈对象会被自动压入新的action里。
看代码,struct.xml
 <action name="indexAction" class="info.frady.action.IndexAction">
            <result name="a" type="chain">
				<param name="actionName">aAction</param>
				<param name="namespace">/</param>
			</result>
			<result name="b" type="chain">
				<param name="actionName">bAction</param>
				<param name="namespace">/</param>
			</result>
        </action>
        
        <action name="aAction" class="info.frady.action.AAction">
            <result>a.jsp</result>
        </action>
        <action name="bAction" class="info.frady.action.BAction">
            <result>b.jsp</result>
        </action>

定义了,三个action,indexAction里的result为a时,执行aaction,为b时,执行baction。
a.ction
package info.frady.action;

import com.opensymphony.xwork2.ActionSupport;

/**
 * @author weimengiq@gmail.com
 * Sep 9, 2012
 */
public class AAction extends ActionSupport {

	@Override
	public String execute() throws Exception {
		return super.execute();
	}
	
}


b.action
package info.frady.action;

import com.opensymphony.xwork2.ActionSupport;

/**
 * @author weimengiq@gmail.com
 * Sep 9, 2012
 */
public class BAction extends ActionSupport {
	private String p;

	public String getP() {
		return p;
	}

	public void setP(String p) {
		System.out.println("Baction里的Set方法被执行p="+p);
		this.p = p;
	}

	@Override
	public String execute() throws Exception {
		System.out.println("Baction里的p="+p);
		return super.execute();
	}
	
}


为了展示值栈被压入,baction里有打印语句
a.jsp内容
A.${p } 

b.jsp内容
B.${p } 

测试urlhttp://localhost:8080/indexAction.action?p=1
运行结果
A.1 

http://localhost:8080/indexAction.action?p=333
结果
B. 333
分享到:
评论

相关推荐

    用filter实现验证登录

    `Filter`是Java Servlet API中的一个重要组件,它允许我们在请求到达目标Servlet之前或之后对请求和响应进行拦截处理。下面将详细解释`Filter`的工作原理以及如何运用它来实现登录验证。 ### Filter工作原理 `...

    Struts2的json和type的使用借鉴.pdf

    在`editTestBak` action中,如果`name="input"`的结果被触发,那么`type="chain"`会调用`doQueryTestBak`方法,实现页面间的逻辑跳转。另一方面,`&lt;result type="json" /&gt;`则表示返回一个JSON格式的数据,常用于Ajax...

    struts2权威指南第5章第5.1-5.2节代码

    拦截器是Struts2框架的核心组件之一,它们按照预定义的顺序在Action执行前后进行拦截,执行特定的任务。例如,验证用户输入、记录日志、事务管理等。拦截器通过实现`Interceptor`接口或继承`AbstractInterceptor`...

    oliver.zip

    这样,即使用户在不同页面之间跳转,服务器也能识别出是同一个用户,从而提供个性化的服务。Session通过一个唯一标识(Session ID)来跟踪用户,这个标识通常会存储在用户的Cookie中。 接下来,我们来讨论`Filter`...

    pringmvc整合shiro权限控制的实例教程共15页

    - **Filter Chain**:Shiro通过Filter Chain定义了请求的处理流程,每个Filter对应一种特定的安全行为。 - **Caching**:Shiro支持缓存机制,提高性能,减少数据库交互。 6. **实战案例** 实际项目中,例如一个...

    Struts2_result返回类型

    2. **chain**:ActionChainResult类用于处理Action链,它允许一个Action完成后直接跳转到另一个Action,同时保留当前请求的数据,比如request作用域中的数据。这在需要多个Action协同工作时很有用。 3. **redirect*...

    Struts2 result和type

    这使得开发者能够在不同的Action之间进行跳转,并且能够传递参数。 ##### 4. **velocity** `velocity`类型用于渲染Velocity模板。通过`location`属性指定模板的位置,模板文件通常以`.vm`作为扩展名。如果`parse`...

    SSH笔记-result标签的type的使用

    在Struts2框架中,`Result`是动作执行后跳转到的目标页面或者资源的关键组件。`Result`标签主要用于配置动作执行后的响应结果,它的`type`属性则定义了不同的处理方式。本笔记将深入探讨`Result`标签的`type`属性...

    Struts2学习资源Result part1.rar

    6. **chain**: 连接Result,允许在一个Action之后执行另一个Action,而不需要客户端进行新的请求。 7. **tiles**: 结合Tiles框架使用,用于构建复杂的页面布局。 学习Struts2 Result的使用,不仅可以提升应用的...

    struts2.0 教程(标签,XML配置,入门例子,帮助手册)

    Action配置包括指定Action类、方法和映射URL,Result则定义了请求成功后的跳转路径,而Interceptor则可以实现预处理和后处理逻辑,如登录检查、日志记录等功能。 "Struts20._action.doc"会讲解Action类型,特别是`...

    数学建模-马氏链模型.zip

    在数学建模中,马尔科夫链(Markov Chain)是一种重要的概率模型,用于描述一个系统随时间演变的行为。这个模型假设当前状态只与前一个状态有关,而与它之前的状态无关,这种性质被称为“无后效性”或“马尔科夫性质...

    struts 2完全学习手册

    - **常见结果类型**:如`dispatcher`(转发到指定的JSP页面)、`redirect`(重定向到另一个URL)、`chain`(跳转到另一个Action)等。 #### Struts 2的关键特性 1. **高度灵活**:Struts 2允许开发者通过自定义...

    struts2基本知识点

    - 常见的结果类型包括dispatcher、redirect、chain、redirectAction、freemarker、httpreader、stream、velocity、xslt、plaintext、tiles等。 6. `global-results`:全局结果对象,适用于所有Action。 7. 动态方法...

    struts2的action的几种result type说明

    2. **chain**: Chain Result Type允许你链式执行多个Action,无需返回到客户端。`class="com.opensymphony.xwork2.ActionChainResult"`。这样可以在一个流程中连续执行多个业务操作。 3. **freemarker**: ...

    实现用户自动登录

    总的来说,实现用户自动登录涉及前端与后端的交互,包括Cookie或Session的使用、Filter的配置、用户信息的验证以及JSTL标签库的运用。在设计时,还需要考虑安全性问题,如防止Session固定攻击、XSS和CSRF等。理解并...

    Struts2的配置文件方法小结

    总的来说,理解并熟练运用Struts2的配置文件是掌握这个框架的关键。配置文件中的`result`节点和结果类型,以及通配符映射,极大地增强了应用的灵活性和可维护性,使得开发者能够更高效地构建MVC应用。

    Struts2 Result 参数详解

    它负责将Action执行的结果导向到相应的视图或者进行其他处理,如重定向、文件下载等。Result的类型多种多样,可以根据实际需求选择合适的Result类型。 1. Chain Result Chain Result用于处理Action链,这意味着一...

    深入浅出Struts_2

    5. **结果类型**(Result Types):Struts2支持多种结果类型,例如dispatcher、redirect、chain等,用于控制Action执行后的页面跳转。 #### 五、Struts2的配置详解 - **配置文件**:Struts2的配置文件是框架的核心...

    iptables中文man文档.pdf

    iptables -[command] [chain] rule_specification [option] ``` - **添加规则** (`-A`): 使用 `-A` 选项可以在指定的链尾添加新的规则。 - 示例: `iptables -A INPUT -p tcp --dport 80 -j ACCEPT` —— 允许所有...

Global site tag (gtag.js) - Google Analytics