macoo

记录收获的点点滴滴

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

首先编写Action:TokenTest

代码
 1 package example;
 2 
 3 import com.opensymphony.xwork2.ActionSupport;
 4 
 5 public class TokenTest extends ActionSupport {
 6     /**
 7      * 
 8      */
 9     private static final long serialVersionUID = -9171705568952325237L;
10     private String token_message;
11 
12     public String getToken_message() {
13         return token_message;
14     }
15 
16     public void setToken_message(String token_message) {
17         this.token_message = token_message;
18     }
19     
20     public String execute(){
21         System.out.println("The meaage is "+token_message);
22         return SUCCESS;
23     }
24 }
25 


 XML文件中添加对应项目:

 

1         <action name="TokenTest" class="example.TokenTest">
2             <interceptor-ref name="defaultStack" />
3             <interceptor-ref name="token" />
4             <result name="invalid.token">/tokenInput.jsp</result>
5             <result>/tokenInput.jsp</result>
6         </action>

注意:一定要添加token拦截器,并且填写返回结果 invalid.token 时的处理页

 

编写JSP文件tokenInput.jsp

 

 1 <%@ page language="java" contentType="text/html; charset=gbk"
 2     pageEncoding="gbk"%>
 3 <%@ taglib prefix="s" uri="/struts-tags" %>
 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 5 <html>
 6 <head>
 7 <meta http-equiv="Content-Type" content="text/html; charset=gbk">
 8 <title>重复提交测试</title>
 9 </head>
10 <body>
11     <s:actionerror/>
12     <s:form name="tokenForm" action="TokenTest" namespace="/example">
13         <s:textfield name="token_message"></s:textfield>
14         <s:property value="token_message"/>
15         <s:submit/>
16         <s:token/>
17     </s:form>
18 </body>
19 </html>

一定要添加<s:actionerror/> <s:token/> 两项,后者可以再客户端生成一个SID,能够唯一确定某个绘画,点击提交后,页面显示提交的内容个,再次按F5刷新时,页面提示你已经提交过了!

 

 

posted on 2010-02-02 17:49  macoo  阅读(441)  评论(0)    收藏  举报