`

Struts2 s:token报NullPointerException

阅读更多

     项目中用到struts2的s:token标签处理表单重复提交问题,在这对s:token的用法用配置做简单介召。因为我只针对某个特定action进行重复提交验证,所以在这只介召针对单个action进行重复提交验证方法。

 

     1):在jsp页表form中添加<s:token/>标签,他会自动生成如如下代码:

 

<input type="hidden" name="struts.token.name" value="struts.token"/>
<input type="hidden" name="struts.token" value="7GXL55LPSGU19SDC9D3VP54I20XT3BVA"/> 
 

 

     2):在需要证验的action添加,token拦截器,和name=invalid.token的result

<action name="createOperator" class="operatorAction" method="createOperator">
     <interceptor-ref name="token" />
     <interceptor-ref name="myDefaultStack" />
     <result name="success_region" type="redirect">  
/pageerror.jsp
     </result>
     <result name="invalid.token">/pageerror.jsp</result>
     <result name="success" type="redirect-action">
         operatorEnter
     </result>
     <result name="error">/WEB-INF/jsp/operator/add.jsp</result>  
</action>  

 

    在提交表单时,struts2会对token值进行验证,如果发现token的值不等于服务器保存的值,就认为重复提交,struts2会自动跳转到,name="invalid.token" result中,并把错误信息封装到actionerror中。

 

    s:token使用中容易出现的错误

java.lang.NullPointerException
org.apache.struts2.util.TokenHelper.setToken(TokenHelper.java:71)
org.apache.struts2.components.Token.buildToken(Token.java:114)
org.apache.struts2.components.Token.evaluateExtraParams(Token.java:96)
org.apache.struts2.components.UIBean.evaluateParams(UIBean.java:856) 

    R:strut2的filter过滤器中配置了<dispatcher>FORWARD</dispatcher>,改为

 

<% response.sendRedirect("");%>

    跳转即可。转自:http://ldzyz007.iteye.com/blog/654374

 

    推荐连接:http://lovemybook.iteye.com/blog/313566

分享到:
评论

相关推荐

    struts2的token实现.

    在Web表单提交中,防止重复提交是一个常见的需求,而Struts2的Token机制就是为了应对这一问题而设计的。Token机制能确保用户只能提交一次表单,避免了由于网络延迟或误操作导致的重复数据录入。 ### 一、Token机制...

    struts2中token限制表单多次提交

    Struts2提供了Token插件来解决这个问题,确保每个表单提交只能被执行一次。下面将详细阐述Struts2中Token机制的工作原理、配置以及使用方法。 1. Token机制概述: Token机制是通过在客户端(浏览器)和服务器之间...

    struts2 标签库 帮助文档

    Struts 2 标签库(文档手册) Tags-API-CLSW-JSP &lt;%@ taglib prefix="s" uri="/struts-tags" %&gt; 就能使用struts2.0的标签库 下面就介绍每个标签的具体应用实例说明:按字母排列 A: 1. 2. &lt;s:a href=""&gt;&lt;/s:a&gt;-...

    [点微]微信平台微信接口提交提示:TOKEN验证失败、URL请求超时1

    [点微]微信平台Discuz 论坛微信运营首选平台微信接口提交提示:TOKEN验证失败、URL请求超时我们在提交开发者中心设置的URL和TOKEN的时候,往往会

    Struts2 防重复提交Demo

    Struts2提供了一个内置的`s:token`标签来解决这个问题。 一、Struts2的`s:token`标签工作原理 `s:token`标签是Struts2的一个动作标签,它的主要作用是在表单中生成一个唯一的令牌,这个令牌会存储在服务器端的...

    JavaEE Struts2利用tokenSession防止重复提交

    &lt;s:hidden name="struts.token" /&gt; ``` 4. **验证与处理**:当表单提交后,Struts2的tokenSession拦截器会自动进行token的验证。如果验证通过,业务逻辑正常执行;若失败,则会抛出异常,提示用户重新操作。 在...

    struts2_token控制刷新重复提交

    Struts2提供了一种名为“token”的机制来解决这个问题。 **什么是Token机制?** Token机制是一种防止重复提交的方法,它通过在客户端(通常是浏览器的session或者cookie)和服务器端存储一个唯一的令牌,确保每个...

    struts2token回退刷新

    Struts2 Token回退刷新是一种防止重复提交的安全机制,尤其在处理并发操作和防止 CSRF(跨站请求伪造)攻击时显得尤为重要。Struts2框架提供了一种令牌验证的方式来确保每个表单提交是唯一的,避免了恶意用户通过...

    CSRF防护:Token验证机制设计.docx

    CSRF防护:Token验证机制设计.docx

    struts2-s标签

    ### Struts2 S 标签库详解 #### 引言 Struts2 是一款流行的 Java Web 开发框架,它提供了一系列强大的功能来帮助开发者构建健壮的 Web 应用程序。其中,Struts2 的标签库是其核心特性之一,为开发者提供了丰富的 ...

    struts 令牌机制(Token)

    在Struts框架中,令牌机制(Token)是一种防止重复提交的有效方法,它主要用于处理表单数据的并发控制,防止用户意外或者恶意地多次提交表单,从而确保数据的一致性和安全性。 在Web应用中,用户可能会因为网络延迟...

    token-provider-1.0.1-API文档-中英对照版.zip

    赠送jar包:token-provider-1.0.1.jar; 赠送原API文档:token-provider-1.0.1-javadoc.jar; 赠送源代码:token-provider-1.0.1-sources.jar; 赠送Maven依赖信息文件:token-provider-1.0.1.pom; 包含翻译后的API...

    struts2的学习笔记+测试源代码

    在Struts2中,可以使用`&lt;s:token&gt;`标签轻松实现Token机制。例如: ```jsp &lt;s:token/&gt; &lt;!-- 表单字段... --&gt; 提交"/&gt; ``` Struts2会自动处理Token的生成和验证,无需程序员过多干预。当表单提交时,Struts2会...

    token-provider-1.0.1-API文档-中文版.zip

    赠送jar包:token-provider-1.0.1.jar; 赠送原API文档:token-provider-1.0.1-javadoc.jar; 赠送源代码:token-provider-1.0.1-sources.jar; 赠送Maven依赖信息文件:token-provider-1.0.1.pom; 包含翻译后的API...

    利用struts的token控制重复提交

    &lt;input type="hidden" name="struts.token" value="&lt;s:token/&gt;" /&gt; 提交" /&gt; ``` 4. **处理结果**: 如果用户重复提交,Struts会自动跳转到输入页面(`input.jsp`),你可以自定义错误消息。 **三、注意事项** ...

    解决在struts 中可以通过token 来重复提交的问题

    ### 解决Struts中通过Token防止重复提交的问题 在Web应用程序开发中,特别是基于MVC架构的框架如Apache Struts中,确保用户操作的安全性是非常重要的。其中一项常见且重要的安全措施是防止表单的重复提交。本文将...

    Struts2解决表单重复提交

    在实现上,开发者可以在JSP表单页面中使用&lt;s:token&gt;标签生成唯一的token标识,并在struts.xml文件中配置相应的token拦截器以及invalid.token结果视图。 在配置示例代码中,开发者需要在login.jsp页面中加入&lt;s:token...

    Struts标签集合简介

    `&lt;s:token&gt;` 用于防止重复提交,`&lt;s:tree&gt;` 创建树形结构,`&lt;s:treenode&gt;` 定义树节点,`&lt;s:updownselect&gt;` 创建可上下选择的多选框,`&lt;s:url&gt;` 生成URL,通常与Action关联。 以上就是Struts标签的基本介绍,它们极...

    struts2开发 token.rar

    这个名为"struts2开发 token.rar"的压缩包文件可能包含了一个关于如何在Struts2框架中实现Token机制的示例项目。Token机制主要用于防止重复提交,是Web开发中的重要安全实践。 首先,我们来看`.classpath`、`....

Global site tag (gtag.js) - Google Analytics