Struts2.0深入学习 命名空间,模型驱动,表单重复提交
2009-09-06 00:00:00 来源:WEB开发网默认拦截器:<interceptor-ref name="defaultStack"></interceptor-ref>
三:原理:
当页面第一次生成的时候<s:token id="register"></s:token>会生成一个隐藏表单域其中包涵一个值,该值 也同样被存放到session当中去了
当页面第一次提交的时候token拦截器会比较这两个值是否相同,相同则第一次提交,第一次提交后会把session这个值清空,表单若再一次提交时则
session当中没有值即两个值不相同提交失败,返回的resut的name为:invalid.token 即:
<result name="invalid.token">/index.jsp</result>
<s:form action="/mymengya/register.action" method="post" theme="simple">
<s:token id="register"></s:token>
<table width="50%">
<tr>
<td>
用户名:
<s:textfield name="username"></s:textfield>
<s:fielderror name="username"></s:fielderror>
</td>
</tr>
<tr>
<td>
密码:
<s:password name="password"></s:password>
<s:fielderror name="password"></s:fielderror>
</td>
</tr>
<tr>
<td>
<s:submit value="注册"></s:submit>
</td>
</tr>
</table>
</s:form>
<package name="mengya" extends="struts-default" namespace="/mymengya">
<action name="register"
class="com.mengya.action.RegisterAction">
<result name="success">/show.jsp</result>
<result name="input">/index.jsp</result>
<result name="invalid.token">/index.jsp</result>
<interceptor-ref name="token"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</action>
</package>
修改Struts2默认的重复提交的错误提示信息:
在Struts2国际化属性文件中添加一条信息:
struts.messages.invalid.token = \u8868\u5355\u4e0d\u5141\u8bb8\u91cd\u590d\u63d0\u4ea4
struts.messages.invalid.token = 不能重复提交
- ››深入理解JAR包
- ››Struts2配置文件中redirect传递中文参数乱码的解决...
- ››深入分析Volatile的实现原理
- ››深入理解Flash Player的应用程序域(Application ...
- ››深入理解flash函数(AS2)
- ››学习网站日志分析:网站日志分析各项指标
- ››学习:Ylmf OS安装全过程(视频)
- ››学习了SEO可以做哪些事
- ››深入理解Android消息处理系统——Looper、Handler...
- ››深入理解SET NAMES和mysql(i)_set_charset的区别
- ››深入理解Mysql字符集设置
- ››学习 Linux,101: 保持文件系统的完整性
更多精彩
赞助商链接