Struts2--防止表单重复提交,数据回显

转载 2015年11月19日 21:58:34

1,防表单重复提交,同样使用Struts内置的拦截器token来完成功能。

                     a,在Struts的默认拦截器中没有防表单重复提交功能,我们需要在action节点下注册一个,代码如下:

                        <interceptor-ref name="defaultStack" />
                        <!-- 增加令牌拦截器 -->
                         <interceptor-ref name="token">
                        <!-- 哪些方法被令牌拦截器拦截 -->
                        <param name="includeMethods">insert</param>
                        </interceptor-ref>

                    param中可以指定另一个值excludeMethods即指定除了哪些方法都执行拦截器,             includeMethods指定为哪些方法执行拦截器

                     b,配置一个错误视图,即拦截到重复提交后跳转到那个页面:

                      <!-- 当用户重复提交表单的时候,struts2会自动转到此错误页面 -->
                      <result name="invalid.token">/WEB-INF/jsp/message.jsp</result>


-------------------------------------------------------------------------------------------------------------------------------------

2,数据回显,很多地方都需要用到数据回显,比如编辑页面,或者是验证的时候验证失败,之前的数据回显是通过将数据存放到域中然后再每个表单项中设置value相对比较麻烦.。struts的回显则相对比较简单,但必须使用struts的控件。

                       a,在跳转到比如编辑页面或者提交页面的方法中加上如下代码:

                       //到到值栈

                       ValueStack vs = ActionContext.getContext().getValueStack();

                       //清空栈顶元素,避免不必要的回显数据
                       vs.pop();

                       //压栈,cus即用来封装数据的实体。
                       vs.push(cus);

 

                       数据回显功能比较强大,如之前比较烦躁的radio或者select等控件同样不需要特殊处理,处理方式和其他控件一致,但是必须使用struts的控件。struts的控件radio和select等控件和html控件差别很大,其他控件则大同小异。例如

                      <s:radio name="gender"  id="gender" list="#{'男':'男','女':'女'}"></s:radio>

                       使用map的形式给radio赋值,list项必须填,客户端生成 的html代码显示为map的value,值即为map的key  

                       <s:select list="#session.departlist" listKey="id" listValue="dname" name="depart" ></s:select>      

                        下拉框的值来自session域中的Bean集合,需要指定每一项显示的值listValue和每一项真正的值listKey都是Bean的属性

Struts2中的数据回显

Struts2中我们为什么要用数据回显呢?比如,当我们提交的数据有错误时,这时候我们在表单页面就需要提示错误信息。 就拿上一篇中的数据类型转换的问题来说明数据回显。当我们没有实现自定义的数据类型转换器...
  • melissa_heixiu
  • melissa_heixiu
  • 2016年10月20日 21:01
  • 3589

Struts2表单回显原理,struts2表单回显

Struts2表单回显原理,struts2表单回显 问题提出:Struts2是如何帮助我们进行表单回显的? 问题解决: 首先写一个简单的测试程序 1)JSP页面主要内容如下(JSP页面名称...
  • liu1pan2min3
  • liu1pan2min3
  • 2015年08月11日 02:01
  • 1937

Struts2-数据回显、模型驱动等常用技术

Struts2-数据回显、模型驱动等常用技术数据回显对于数据回显,必须要用struts标签!例如下面这个标签有两种方式实现回显:1) 将user作为action的实例变量 Action跳转时是这样的...
  • sdlg2015
  • sdlg2015
  • 2015年09月22日 09:03
  • 3791

struts2--(3)--一些小的知识---简单数据验证信息回显问题

---- 简单的数据校验 在struts2中,action在接受到用户提交的数据时,有时需要对其进行校验,检验成功或失败需要向用户 回显相关的信息,为了能够方便在jsp页面回显相关信息,action...
  • wliang11
  • wliang11
  • 2014年03月27日 23:50
  • 1077

Struts2——常用标签(数据回显)

对于数据回显,必须要用struts标签!   例如下面这个标签有两种方式实现回显:  1) 将user作为action的实例变量     Action跳转时是这样的 public class Us...
  • qq_36295256
  • qq_36295256
  • 2017年07月28日 10:34
  • 395

Struts2--防止表单重复提交,数据回显

1,防表单重复提交,同样使用Struts内置的拦截器token来完成功能。                      a,在Struts的默认拦截器中没有防表单重复提交功能,我们需要在actio...
  • qiuyanzi
  • qiuyanzi
  • 2015年11月19日 21:58
  • 1640

struts-基础内容-5-数据处理,数据回显,模型驱动

Struts对数据操作方式一:直接拿到servletAPI,执行操作 @Override public String execute() throws Exception { ...
  • u010281209
  • u010281209
  • 2016年12月08日 18:02
  • 480

SSH框架之Struts的常用技术——数据回显、防止表单重复提交

Struts2的常用三大技术: 1、数据回显 2、模型驱动 3、防止表单重复提交 一、数据回显: 1、数据回显,必须要用struts标签! 2、代码讲解: 1)Action: //...
  • qq_34944851
  • qq_34944851
  • 2017年02月22日 10:58
  • 523

防止表单重复提交的八种简单有效的策略

表单重复提交是在多用户Web应用中最常见、带来很多麻烦的一个问题。有很多的应用场景都会遇到重复提交问题,比如: 点击提交按钮两次。 点击刷新按钮。 使用浏览器后退按钮重复之前的操作,导致重复...
  • myhuashengmi
  • myhuashengmi
  • 2016年09月28日 21:25
  • 34999

Struts2表单验证、模型驱动、防重复提交、数据回显笔记整理

刚学完一些零散的struts内置功能,做点笔记,就当回顾一遍,也便以后使用。 -------------------------------------------------------------...
  • wakeupwakeup
  • wakeupwakeup
  • 2016年06月17日 13:50
  • 723
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Struts2--防止表单重复提交,数据回显
举报原因:
原因补充:

(最多只允许输入30个字)