Struts2中的Token令牌使用(转)

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">/page1e

posted @ 2013-03-28 11:38  wubu  阅读(265)  评论(0)    收藏  举报