首页 > 代码库 > Struts2 处理表单重复提交

Struts2 处理表单重复提交

  * 在表单页面中增加一个隐藏域:<s:token></s:token>(需要在表单内)
    
    * 创建一个struts.xml的配置文件,具体配置如下:
        <!-- 配置默认执行的拦截器栈,增加令牌拦截器 -->
        <interceptors>
            <interceptor-stack name="tokenStack">
                <interceptor-ref name="defaultStack" />
                <interceptor-ref name="token" >
                    <!-- 配置令牌拦截器,拦截的方法名,如果配置多个方法时,用","隔开 -->
                    <param name="includeMethods">save,update</param>
                </interceptor-ref>
            </interceptor-stack>
        </interceptors>
        
        <default-interceptor-ref name="tokenStack" />
    
    * 在struts.xml配置文件中,增加一个result结果类型:
        <!-- 配置表单重复提交后,要转向到的页面 -->
        <result name="invalid.token">/model/error.jsp</result>
    
      * 在表单重复提交后,要转向到的页面中通过<s:actionerror>获取struts2框架底层提供错误提示信息
    
    * 将struts2框架底层提供错误提示信息改成中文:
        
        * 在与动作类action同级目录下,创建名为"token.properties"的资源文件(需要配置在struts.xml文件中的constant下),文件内容如下:
            struts.messages.invalid.token=表单重复提交,请刷新后重试!

        struts.xml中:<constant name="struts.custom.i18n.resources"  value="http://www.mamicode.com/

Struts2 处理表单重复提交