zoukankan      html  css  js  c++  java
  • struts2的防止表单重复提交

    防止表单重复提交其实就是struts2的一个拦截器的使用;

    struts.xml配置文件

     1 <?xml version="1.0" encoding="UTF-8" ?>
     2 <!DOCTYPE struts PUBLIC
     3     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
     4     "http://struts.apache.org/dtds/struts-2.0.dtd">
     5 
     6 <struts>
     7     <constant name="struts.ui.theme" value="simple" />
     8     <!-- struts2在防止表单重复提交的拦截中有2个,分别是:token,tokenSession。tokenSession继承token而来。
     9          通常情况下,使用tokenSession客户端感觉会比较友好。 -->
    10     <!-- 如果重复提交,会跳转到error.jsp页面 -->
    11     <package name="person" namespace="/test" extends="struts-default">
    12         <action name="token" class="com.ljq.action.PersonAction">
    13             <interceptor-ref name="defaultStack" />
    14             <interceptor-ref name="token" />
    15             <!-- 如果重复提交,跳转到error.jsp页面 -->
    16             <result name="invalid.token">/WEB-INF/page/error.jsp</result> 
    17             <result>/WEB-INF/page/message.jsp</result>
    18         </action>
    19         <action name="tokenSession" class="com.ljq.action.PersonAction">
    20             <interceptor-ref name="defaultStack" />
    21             <interceptor-ref name="tokenSession" />
    22             <!-- 如果重复提交,不会跳转到error.jsp页面 -->
    23             <result name="invalid.token">/WEB-INF/page/error.jsp</result> 
    24             <result>/WEB-INF/page/message.jsp</result>
    25         </action>
    26     </package>
    27 </struts>

     Action类

     1 package com.action;
     2 import java.util.ArrayList;
     3 import java.util.List;
     4 public class PersonAction {
     5     private String name;
     6     public String execute() {
     7         System.out.println(name);
     8         return "success";
     9     }
    10     public String getName() {
    11         return name;
    12     }
    13     public void setName(String name) {
    14         this.name = name;
    15     }
    16 }

    index.jsp表单页面

     1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
     2 <%@ taglib uri="/struts-tags" prefix="s"%>
     3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     4 <html>
     5   <head>
     6     <title>防止表单重复提交</title>
     7     <meta http-equiv="pragma" content="no-cache">
     8     <meta http-equiv="cache-control" content="no-cache">
     9     <meta http-equiv="expires" content="0">   
    10   </head>
    11   <body>
    12       <!-- 防止表单重复提交,记得在form表单里填上<s:token></s:token> -->
    13       <!-- action="token"、action="tokenSession" -->
    14       <s:form action="token" namespace="/test" method="post">
    15           姓名:<s:textfield name="name"/>
    16           <s:token></s:token>
    17           <input type="submit" value="发送"/>
    18       </s:form>
    19   </body>
    20 </html>

    message.jsp返回成功页面

     1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
     2 <%@ taglib uri="/struts-tags" prefix="s"%>
     3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     4 <html>
     5   <head>
     6     <title>My JSP 'index.jsp' starting page</title>
     7     <meta http-equiv="pragma" content="no-cache">
     8     <meta http-equiv="cache-control" content="no-cache">
     9   </head>
    10   <body>
    11      <s:property value="name"/>
    12   </body>
    13 </html>

    error.jsp表单重复提交提示页面

     1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
     2 <%@ taglib uri="/struts-tags" prefix="s" %>
     3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     4 <html>
     5   <head>
     6     <title>My JSP 'error.jsp' starting page</title>
     7     <meta http-equiv="pragma" content="no-cache">
     8     <meta http-equiv="cache-control" content="no-cache">
     9   </head>
    10   <body>
    11       您已经提交了表单,请不要重复提交。
    12   </body>
    13 </html>
  • 相关阅读:
    Python-手动安装第三方包
    SQL SERVER-根据jobID查job
    python-包模块等概念
    锁表
    Python-try异常捕获
    胶水语言
    C++之多态性与虚函数
    android
    开源许可协议
    hal
  • 原文地址:https://www.cnblogs.com/ruidongjun/p/3404431.html
Copyright © 2011-2022 走看看