`

ognl 防止表单重复提交

阅读更多

 

第一步:在表单中加入<s:token />
<s:form action="helloworld_other" method="post" namespace="/test">
  <s:textfield name="person.name"/><s:token/><s:submit/>
  </s:form>
第二步:
<action name="helloworld_*" class="cn.itcast.action.HelloWorldAction" method="{1}">
         <interceptor-ref name="defaultStack"/>
          <!-- 增加令牌拦截器 -->
          <interceptor-ref name="token">
                  <!-- 哪些方法被令牌拦截器拦截 -->
                  <param name=“includeMethods">save</param>
          </interceptor-ref>   
         <!-- 当表单重复提交转向的页面 -->
        <result name="invalid.token">/WEB-INF/page/message.jsp</result> 
</action>
以上配置加入了token拦截器和invalid.token结果,因为token拦截器在会话的token与请求的token一致时,将会直接返回invalid.token结果。
 
debug状态,控制台出现下面信息,是因为Action中并没有struts.tokenstruts.token.name属性,们不用关心这个错误:
严重: ParametersInterceptor - [setParameters]: Unexpected Exception caught setting 'struts.token' on 'class xxx: Error setting expression 'struts.token' with value '[Ljava.lang.String;@39f16f'
严重: ParametersInterceptor - [setParameters]: Unexpected Exception caught setting 'struts.token.name'
分享到:
评论

相关推荐

    struts数据回显、模型驱动、防止表单重复提交

    本主题将深入探讨Struts框架中的数据回显、模型驱动以及如何防止表单重复提交,这些都是在实际开发中非常关键且实用的技术点。 1. 数据回显: 数据回显是指在用户提交表单后,服务器端处理数据并返回结果页面时,将...

    struts2学习的相关资料

    当用户再次提交表单时,框架会检查令牌的有效性,如果令牌已被使用或者过期,则阻止表单的重复提交,有效防止了恶意的重复操作。 拦截器是Struts2的核心特性之一,它们在Action调用前后执行,可以实现各种业务逻辑...

    Struts2 demo2

    通过这些知识点,我们可以了解到"Struts2 demo2"可能涵盖了Struts2的核心特性,如Action配置、数据校验、类型转换、OGNL表达式、防止重复提交和自定义标签库的使用。这些内容对于理解和实践Java web开发中的MVC模式...

    Java实训教程 Java软件开发实战 Java开发框架介绍 struts2_表单校验失败跳input视图问题共13页.pptx

    在Web应用开发中,表单校验是非常重要的环节之一,能够有效防止非法数据的提交,提高系统的安全性与稳定性。Struts2提供了一套完整的表单校验机制,包括但不限于客户端验证、服务器端验证以及自定义验证规则等。 ##...

    Struts2Day2

    `Struts2Day2_token`可能讲解了防止重复提交的Token机制。在多用户并发环境下,为了避免同一表单被多次提交导致数据异常,Struts2提供了Token插件。它在客户端存储一个令牌,并在服务器端验证,如果发现重复提交,...

    struts2课程笔记

    防止表单重复提交是Web开发中的常见问题,Struts2通过令牌机制来解决这个问题,避免了同一操作被多次执行。 项目练习部分涉及到使用Ajax实现异步请求并返回JSON数据,这通常通过Struts2的JSON插件实现。文件下载则...

    SSH项目1

    7. 数据回显/模型驱动:在表单重填时,可以将模型数据回显到表单中,防止表单重复提交。 Hibernate是一个强大的ORM(对象关系映射)框架,它简化了数据库操作。主要包括: 1. API简介:提供Session、...

    struts2 经典学习小例子

    在表单提交时,Struts2的Token interceptor可以防止用户意外或恶意地重复提交数据。每个请求都会生成一个唯一的Token,存储在用户的session中,当表单提交时,框架会验证Token的有效性,避免多次提交。 5. **...

    struts2 详解文档

    24. **防止重复提交**:可以使用s:token标签防止表单重复提交的问题。 25. **Struts2整合Spring和Hibernate**:Struts2与Spring的整合可以实现依赖注入,与Hibernate的整合则方便进行持久化操作。 以上就是Struts2...

    java常用框架学习笔记

    Struts2提供了防止表单重复提交的机制,可以通过令牌机制来实现。 ##### 9.11 Struts中Result标签 Struts2的`&lt;result&gt;`标签用于定义请求处理后的结果页面。 以上内容概述了Java开发中常用的几个框架的基本概念和...

    Struts2.1学习笔记

    - **token防止表单重复提交**:使用`&lt;s:token&gt;`标签可以生成一个隐藏字段,防止用户多次提交同一个表单。 通过以上内容的学习,可以全面了解Struts2.1框架的核心特性和使用方法,这对于开发者来说是非常宝贵的资源...

    struts2标签库实验报告.docx

    - 实现`getMessage()`方法,返回提示信息,例如“请勿重复提交表单信息!”。 - 实现`execute()`方法,返回字符串“success”,以指定视图展示。 **4. 源代码示例** - 下面是`TaglibAction`类的部分源代码示例: `...

    Struts2入门教程(全新完整版)

    5. TokenInterceptor防止表单重复提交。 34 6.使用拦截器实现权限验证 35 7.拦截器中的注解 37 8.使用PreResultListener实现回调 39 六、使用标签 40 1.基础表单标签 40 2.单选按钮和复选框: 41 3.三种方式实现下拉...

    Struts2 in action中文版

    15.3 使用令牌防止表单重复提交 313 15.3.1 使用s:token/表单标签 313 15.3.2 令牌拦截器规则的例外 314 15.4 自动显示等待页面 316 15.5 完成CRUD操作的一个动作 317 15.5.1 CRUD 317 15.5.2 拦截器和接口 318 ...

    struts2例子大全

    常见的拦截器有Validation拦截器(表单验证)、I18n拦截器(国际化)和Execute-and-Redirect拦截器(防止重复提交)。 4. **结果类型(Result)**:Struts2支持多种结果类型,如dispatcher(默认,转发到一个JSP...

    struts2自学文档

    - **防止重复提交**:通过在表单中加入隐藏字段、使用令牌等机制避免重复提交问题。 #### 十一、OGNL表达式 - **OGNL**:Object-Graph Navigation Language,是一种强大的表达式语言,用于获取或设置对象属性,...

Global site tag (gtag.js) - Google Analytics