struts源码分析(2)-----CANCEL按钮!

来源:互联网 发布:小米6 手机网络不佳 编辑:程序博客网 时间:2024/06/05 15:37
在struts的html标签中有一个神奇的CANCEL标签,等等,这可不是我们认为的RESET标签,他带来的不仅仅是页面上的重置效果,而是一个深入后台的操作,我们来看一下这个神奇的按钮是如何深入敌后,进行操作的:

  1. <html:cancel>
  2. cancel
  3. </html:cancel>
或者:
  1. <html:cancel property="" value="cancel" />
上面的标签生成的html标记是:

  1. <input type="submit" name="org.apache.struts.taglib.html.CANCEL"
  2. onclick="bcancel=true" />
我相信上面的脚本是很容易看懂的,那么我们来看一下是如何把请求在后台实现的:

在processPopulate()方法中:
  1. if ((request.getParameter(Globals.CANCEL_PROPERTY) != null)
  2.             || (request.getParameter(Globals.CANCEL_PROPERTY_X) != null)) {
  3.             request.setAttribute(Globals.CANCEL_KEY, Boolean.TRUE);
  4.         }
在Action中有一个方法可以判断当前是否取消:

  1.     protected boolean isCancelled(HttpServletRequest request) {
  2.         return (request.getAttribute(Globals.CANCEL_KEY) != null);
  3.     }
我们可以利用这个方法来辅助业务逻辑代码和流程控制代码的编写!
原创粉丝点击