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的属性

相关文章推荐

7、struts2 案例( 模型驱动、 防止表单重复提交--拦截器 、数据回显 、值栈 、 OGNL表达式综合运用)

struts2 案例技术点: 模型驱动 防止表单重复提交–拦截器 数据回显 值栈 OGNL表达式 通配符、路径匹配原则、常量 数据...

Struts中数据回显,防止表单重复提交

数据回显 数据回显,必须要用struts标签!Action中:// 进入修改页面 public String viewUpdate() { // 模拟一个对象(先获取一个id...

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

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

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

刚学完一些零散的struts内置功能,做点笔记,就当回顾一遍,也便以后使用。 -------------------------------------------------------------...

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

1)表单验证 strus的表单验证通过使用struts内置的vlidation拦截器来完成。使用相对比较简单,有以下步骤需要完成。 ...

struts2防止表单重复提交的解决方案

一、造成重复提交主要的两个原因:    在平时的开发过程中,经常可以遇到表单重复提交的问题,如做一个注册页面,如果表单重复提交,那么一个用户就会注册多次,重复提交主要由于两种原因。     1、 ...

Struts2_防止表单重复提交

事实证明,事业越成功的人,也就越有宽容之心。宽容犹如春天,可使万物生长,成就一片阳春景象。有多大度来成多大事。先谈两个概念:1.什么是表单重复提交? ①由于用户网速慢问题,用户会不断点击提交按钮,...

Struts2中使用<s:token>防止表单重复提交

一、造成表单重复提交的原因 1.服务器处理时间过长,当再次点击提交时,导致服务器接收到两条或者多条相同信息; 2.forward跳转引起重复提交,页面跳转主要有两种情况:一是,请求转发,主要指服务...

struts2 token拦截器防止表单重复提交

>======================================================< 0.struts2的token是什么? struts2的token是用来防止表达的重复...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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