博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【struts2】名为chain的ResultType
阅读量:6001 次
发布时间:2019-06-20

本文共 1891 字,大约阅读时间需要 6 分钟。

  1)基本使用

  名称为“chain”的ResultType,在struts-default.xml里的配置如下:

  chain是一种特殊的视图结果,用来将Action执行完之后链接到另一个Action中继续执行,新的Action使用上一个Action的上下文(ActionContext),数据也会被传递。

  这在实际开发中,也是经常用到的一种ResultType。比如我们在Servlet开发中,一个请求,被一个Servlet处理过后,不是直接产生相应,而是把这个请求传递到下一个Servlet继续处理,直到需要的多个Servlet处理完成后,才生成响应返回。同样的,在Struts2开发中,也会产生这样的需要,一个请求被一个Action处理过后,不是立即产生响应,而是传递到下一个Action中继续处理。那么这个时候,就需要使用chain这个ResultType了。

  来示例一下,先看看第一个Action,就用HelloWorldAction吧,稍微简化一下,示例如下:

public class HelloWorldAction extends ActionSupport {      private String account;      private String password;      private String submitFlag;            public String execute() throws Exception {          this.businessExecute();          return "toSecond";      }      public void businessExecute(){          System.out.println("用户输入的参数为==="+"account="+account+",password="+password+",submitFlag="+submitFlag);      }  //属性对应的getter/setter方法,省略了  }

  第二个Action,示例代码如下:

public class SecondAction extends ActionSupport {         public String execute() throws Exception {          System.out.println("现在SecondAction进行处理");          return "toWelcome";      }  }

  然后到struts.xml中,配置这两个Action,要注意第一个Action的配置,在配置“toSecond”这个result的时候,用的就是chain这个ResultType,示例如下:

secondAction
/s2impl/welcome.jsp

  2)备注

  • chain不能在result配置的时候传递参数,也就是说,不能类似于如下的配置:
secondAction?account=5

  这种配置方式是不行的,因为这里要求配置的是要链接的Action的name,不能传递参数,那么,要传递参数怎么办呢?那就需要在Action里面使用ActionContext或者ServletActionContext了。

  • 使用chian的方式,后面的Action会和前面的Action共用同一个ActionContext
  • 名称为“chain”的ResultType在配置的时候,除了前面示例中的actionName外,还有一个参数,名称为“namespace”,表示被链接的Action所在包的命名空间,如果不设置,默认的即是当前的命名空间。配置示例如下:
secondAction
其他Package的namespace

  参考资料:

转载地址:http://hpbmx.baihongyu.com/

你可能感兴趣的文章
[Windows Azure] How to use the Windows Azure Blob Storage Service in .NET
查看>>
LNAMP第二版(nginx 1.2.0+apache 2.4.2+php 5.4)
查看>>
MongoDB repl set权限认证配置步骤
查看>>
java学习笔记(1)
查看>>
禁止Mysql默认端口访问Internet - MySQL - IT技术网
查看>>
基于用户投票的排名算法(二):Reddit
查看>>
下午最后的草坪
查看>>
Maven学习总结(七)——eclipse中使用Maven创建Web项目
查看>>
用PHP读取和编写XML DOM4
查看>>
github相关
查看>>
1.部分(苹果)移动端的cookie不支持中文字符,2.从json字符串变为json对象时,只支持对象数组...
查看>>
vim配置及快捷键
查看>>
2018省赛赛第一次训练题解和ac代码
查看>>
UWP Composition API - 锁定列的FlexGrid
查看>>
[转载] win10进行端口转发
查看>>
利用JavaScript jQuery实现图片无限循环轮播(不借助于轮播插件)-----转载
查看>>
从零开始搭建vue项目 请求拦截器 响应拦截器
查看>>
ajax实现动态下拉框
查看>>
HDU3257 Hello World!【打印图案+位运算】
查看>>
jquery 选择器
查看>>