Struts2中的Token令牌使用
2015-10-23 15:47
417 查看
Struts2中的Token令牌使用
2011-07-17 18:54:55A-A+
1、使用Struts2的表单标签,其中需要增加token标签。如下:
……
<%@ taglib uri='/struts-tags' prefix='s' %>
……
<s:form action='page1' theme='simple'>
<s:datetimepicker name='order.date' label='购买日期' toggleType='explode' value='today'/><br/>
<s:token/>
<s:reset/><s:submit/>
</s:form>
2、在struts配置文件中增加token拦截器。(token 和 token-session 拦截器的启用,是在 struts.xml 配置文件中,既可以为包启用,也可以单独为某个 action 启用)
2.1 为 Action 启用 token
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE struts PUBLIC
'-//Apache Software Foundation//DTD Struts Configuration 2.0//EN'
'http://struts.apache.org/dtds/struts-2.0.dtd'>
<struts>
<package name='lee' extends='struts-default'>
<action name='page1' class='org.bruce.Page1'>
<interceptor-ref name='defaultStack' />
<interceptor-ref name='token' />
<result>/page1.jsp</result>
<result name='invalid.token'>/page1error.jsp</result>
</action>
</package>
</struts>
2.2 为包启用 token
注意,需要name为invaid.token的result。这是当拦截器判断是重复提交的时候,会转向的结果。
<package name='lee' extends='struts-default'>
<interceptors>
<interceptor-stack name='myStack'>
<interceptor-ref name='token'/>
<interceptor-ref name='defaultStack' />
</interceptor-stack>
</interceptors>
<default-interceptor-ref name='myStack' />
<action name='page1' class='org.bruce.Page1'>
<result>/page1.jsp</result>
<result name='invalid.token'>/page1error.jsp</result>
</action>
</package>
如遇到
Could not find token name in params. - at com.opensymphony.xwork2.util.logging.commons.CommonsLogger.warn(CommonsLogger.java:56)
解决方式 :
struts.xml中修改token拦截器中增加对防止重复提交方法的拦截配置:
<interceptor-ref name="token">
<param name="includeParams">
allocate,create
</param>
</interceptor-ref>
如遇到
Error setting expression 'struts.token.name' with value '[Ljava.lang.String;@14057e5' - at com.opensymphony.xwork2.util.logging.commons.CommonsLogger.warn(CommonsLogger.java:64)
解决方式:
struts.xml中修改params参数拦截器配置如下:
<interceptor-ref name="params">
<param name="excludeParams">
dojo\..*,.*\\u0023.*,struts.token,struts.token.name
</param>
</interceptor-ref>
相关文章推荐
- struts2的值栈
- Java的方法重载与变量作用域简介
- jdk安装,配置
- java中的Scanner类进行操作
- Java 异常处理机制
- 遗传算法java代码
- 深入解析Java编程中方法的参数传递
- JAVA多线程实现的三种方式
- 从头认识java-2.4 逻辑运算符
- 从头认识java-2.4 逻辑运算符
- myeclipse 2014中customize perspective选项无法打开的原因
- Struts2 action配置
- spring
- Java IO流分析整理
- Java语言基础(移位运算符)
- java中的代理模式 用接口
- java 读取文件中文乱码问题
- JAVA设计模式(17) —<行为型>责任链模式(Chain of Responsibility)
- Spring+hibernate中的问题解决:java.lang.ClassCastException: $Proxy6 cannot be cast to com.mqEsb.service.imp
- 浅析spring mvc工作原理