0%

struts2 防止表单重复提交

防止表单重复提交,需要在表单中增加一段随机字符串,来验证是否重复提交。 表单使用struts标签库生成:

    <s:form action="login" theme="simple">
        username: <input type="text" name="username" />
        <br />
        password:<input type="password" name="password" />
        <s:token></s:token><!-- 插入token -->
        <input type="submit" value="提交" />
    </s:form>

Action类不需要作任何修改,只需修改struts.xml中配置:

        <action name="login" class="com.struts2.LoginAction">
            <result name="success">/result.jsp</result>
            <result name="input">/login.jsp</result>
            <result name="invalid.token">/1.jsp</result>
            <interceptor-ref name="token"></interceptor-ref>
            <interceptor-ref name="defaultStack"></interceptor-ref>
        </action>

增加三行,struts2在检测到重复提交时会返回name为invalid.token的结果,需要加上拦截器。