下面利用token拦截器实现对重复提交表单的处理
步骤:
1、新建register.jsp
- <font color="red"><s:actionerror/></font>
- <body>
- <form action="tokenaction" method="post">
- <s:token></s:token>
- <s:textfield name="username" label="用户名" size="15"></s:textfield><br/>
- <s:password name="password" label="密码" size="15"></s:password><br/>
- <input type="submit" value="提交">
- <s:submit></s:submit><br/>
- </form>
- </body>
2、新建action
- public class tokenAction extends ActionSupport {
- private String username;
- private String password;
- public String getUsername() {
- return username;
- }
- public void setUsername(String username) {
- this.username = username;
- }
- public String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- @Override
- public String execute() throws Exception {
- return SUCCESS;
- }
3、配置struts.xml
- <struts>
- <package name="default" extends="struts-default">
- <action name="tokenaction" class="com.token.tokenAction">
- <interceptor-ref name="token"></interceptor-ref> //引用token拦截器
- <interceptor-ref name="defaultStack"></interceptor-ref>
- <!-- <interceptor-ref name="execAndWait"></interceptor-ref> -->//这个是等待页面拦截器,这里我没有使用,有点问题
- <result>/success.jsp</result>
- <result name="invalid.token">/register.jsp</result> //token拦截器在遇到重复提交的情况下会返回<span style="font-family: Arial, Helvetica, sans-serif;">invalid.token结果和一个动作错误</span><pre name="code" class="plain">
<!-- <result name="wait">/wait.jsp</result>--></action></package></struts>
- 用户信息如下:<br>
- 用户名:<s:property value="username"/><br/>
- 密码 : <s:property value="password"/><br/>
- </body>
上面遇到的等待页面的问题是
1、在引用了execAndWait拦截器后,跳转到了wait.jsp后不知道怎么在等待一段时间后自动转到success页面(待解决)
2、token拦截器究竟是怎么工作的?
上面两个问题解决后,再贴后面,如果有知道的朋友,可以留言,我是菜鸡,我在努力,谢谢