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`是Java Servlet API中的一个重要组件,它允许我们在请求到达目标Servlet之前或之后对请求和响应进行拦截处理。下面将详细解释`Filter`的工作原理以及如何运用它来实现登录验证。 ### Filter工作原理 `...
在`editTestBak` action中,如果`name="input"`的结果被触发,那么`type="chain"`会调用`doQueryTestBak`方法,实现页面间的逻辑跳转。另一方面,`<result type="json" />`则表示返回一个JSON格式的数据,常用于Ajax...
拦截器是Struts2框架的核心组件之一,它们按照预定义的顺序在Action执行前后进行拦截,执行特定的任务。例如,验证用户输入、记录日志、事务管理等。拦截器通过实现`Interceptor`接口或继承`AbstractInterceptor`...
这样,即使用户在不同页面之间跳转,服务器也能识别出是同一个用户,从而提供个性化的服务。Session通过一个唯一标识(Session ID)来跟踪用户,这个标识通常会存储在用户的Cookie中。 接下来,我们来讨论`Filter`...
- **Filter Chain**:Shiro通过Filter Chain定义了请求的处理流程,每个Filter对应一种特定的安全行为。 - **Caching**:Shiro支持缓存机制,提高性能,减少数据库交互。 6. **实战案例** 实际项目中,例如一个...
2. **chain**:ActionChainResult类用于处理Action链,它允许一个Action完成后直接跳转到另一个Action,同时保留当前请求的数据,比如request作用域中的数据。这在需要多个Action协同工作时很有用。 3. **redirect*...
这使得开发者能够在不同的Action之间进行跳转,并且能够传递参数。 ##### 4. **velocity** `velocity`类型用于渲染Velocity模板。通过`location`属性指定模板的位置,模板文件通常以`.vm`作为扩展名。如果`parse`...
在Struts2框架中,`Result`是动作执行后跳转到的目标页面或者资源的关键组件。`Result`标签主要用于配置动作执行后的响应结果,它的`type`属性则定义了不同的处理方式。本笔记将深入探讨`Result`标签的`type`属性...
6. **chain**: 连接Result,允许在一个Action之后执行另一个Action,而不需要客户端进行新的请求。 7. **tiles**: 结合Tiles框架使用,用于构建复杂的页面布局。 学习Struts2 Result的使用,不仅可以提升应用的...
Action配置包括指定Action类、方法和映射URL,Result则定义了请求成功后的跳转路径,而Interceptor则可以实现预处理和后处理逻辑,如登录检查、日志记录等功能。 "Struts20._action.doc"会讲解Action类型,特别是`...
在数学建模中,马尔科夫链(Markov Chain)是一种重要的概率模型,用于描述一个系统随时间演变的行为。这个模型假设当前状态只与前一个状态有关,而与它之前的状态无关,这种性质被称为“无后效性”或“马尔科夫性质...
- **常见结果类型**:如`dispatcher`(转发到指定的JSP页面)、`redirect`(重定向到另一个URL)、`chain`(跳转到另一个Action)等。 #### Struts 2的关键特性 1. **高度灵活**:Struts 2允许开发者通过自定义...
- 常见的结果类型包括dispatcher、redirect、chain、redirectAction、freemarker、httpreader、stream、velocity、xslt、plaintext、tiles等。 6. `global-results`:全局结果对象,适用于所有Action。 7. 动态方法...
2. **chain**: Chain Result Type允许你链式执行多个Action,无需返回到客户端。`class="com.opensymphony.xwork2.ActionChainResult"`。这样可以在一个流程中连续执行多个业务操作。 3. **freemarker**: ...
总的来说,实现用户自动登录涉及前端与后端的交互,包括Cookie或Session的使用、Filter的配置、用户信息的验证以及JSTL标签库的运用。在设计时,还需要考虑安全性问题,如防止Session固定攻击、XSS和CSRF等。理解并...
总的来说,理解并熟练运用Struts2的配置文件是掌握这个框架的关键。配置文件中的`result`节点和结果类型,以及通配符映射,极大地增强了应用的灵活性和可维护性,使得开发者能够更高效地构建MVC应用。
它负责将Action执行的结果导向到相应的视图或者进行其他处理,如重定向、文件下载等。Result的类型多种多样,可以根据实际需求选择合适的Result类型。 1. Chain Result Chain Result用于处理Action链,这意味着一...
5. **结果类型**(Result Types):Struts2支持多种结果类型,例如dispatcher、redirect、chain等,用于控制Action执行后的页面跳转。 #### 五、Struts2的配置详解 - **配置文件**:Struts2的配置文件是框架的核心...
iptables -[command] [chain] rule_specification [option] ``` - **添加规则** (`-A`): 使用 `-A` 选项可以在指定的链尾添加新的规则。 - 示例: `iptables -A INPUT -p tcp --dport 80 -j ACCEPT` —— 允许所有...