Struts2中防止表单重复提交,global-results定义全局结果处理
2014-06-04 22:05
375 查看
1、在表单中加入<s:token/>标签
2、在动作类中加入token的拦截器
<!--如果单单写 name="token" 会丧失 defaultStack 拦截器提供的 那些功能, 默认是 defaultStack 提供的那些功能
但是一写其他拦截器,所以它也要加上-->
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="token"></interceptor-ref>
3、增加一个名称为invalid.token的结果视图
<result name="invalid.token">/success.jsp</result>
jsp页面中
struts.xml中
类中的提交之后 试试打印userName字段,重复刷新时页面会转到/token.jsp页面
为了让interceptor-ref name=""只写一句就引用了
2、在动作类中加入token的拦截器
<!--如果单单写 name="token" 会丧失 defaultStack 拦截器提供的 那些功能, 默认是 defaultStack 提供的那些功能
但是一写其他拦截器,所以它也要加上-->
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="token"></interceptor-ref>
3、增加一个名称为invalid.token的结果视图
<!--实际上用到了token的拦截器, 拦截器返回值就是 invalid.token字符串,通过源码可以看到-->
<result name="invalid.token">/success.jsp</result>
global-results定义全局结果处理
jsp页面中
<s:form action="token" namespace="/" > <s:token></s:token> <s:textfield label="姓名" name="userName"/> 姓名 <br/> <s:textfield label="年龄" name="age"/> 年龄 <br/> <s:textfield label="密码" name="password"/>密码 <br/> <s:textfield name="birthday"/>生日 <br/> <s:submit value="提交" /> </s:form>
struts.xml中
<constant name="struts.devMode" value="true" /> <struts> <constant name="struts.enable.DynamicMethodInvocation" value="false"></constant> <constant name="struts.custom.i18n.resources" value="itcast"></constant> <!--只要继承了mypackage的 默认 都有个 返回结果 name="error"的,在token那个action那里就不用写 name="error" 结果处理了--> <package name="mypackage" extends="struts-default"> <global-results> <result name="error">/error.jsp</result> </global-results> </package> <package name="token" extends="mypackage"> <action name="token" class="cn.itcast.action.PersonAction"> <!--如果单单写 name="token" 会丧失 defaultStack 拦截器提供的 那些功能, 默认是 defaultStack 提供的那些功能 但是一写其他拦截器,所以它也要加上--> <interceptor-ref name="defaultStack"></interceptor-ref> <interceptor-ref name="token"></interceptor-ref> <!--实际上用到了token的拦截器, 拦截器返回值就是 invalid.token字符串,通过源码可以看到--> <result name="invalid.token">/token.jsp</result> <!--无效的时候返回的页面 一般返回到success.jsp就可以了--> <result name="success">/success.jsp</result> <result name="input">/submit.jsp</result> </action> </package> </struts>
类中的提交之后 试试打印userName字段,重复刷新时页面会转到/token.jsp页面
为了让interceptor-ref name=""只写一句就引用了
<interceptor-ref name="defaultStack"></interceptor-ref> <interceptor-ref name="token"></interceptor-ref> 参考 http://www.cnblogs.com/friends-wf/p/3766425.html
<package name="mydefault" extends="struts-default"> <interceptors> <interceptor name="permissionInterceptor" class="cn.itcast.interceptor.PermissionInterceptor"></interceptor> <interceptor-stack name="mydefaultstack"> <!-- 集总定义的栈内容 --> <interceptor-ref name="defaultStack"></interceptor-ref> <interceptor-ref name="permissionInterceptor"></interceptor-ref> </interceptor-stack> </interceptors> </package> <package name="user" namespace="/user" extends="mydefault"> <action name="login" class="cn.itcast.domain.User" method="login"> <!--用于处理 login.jsp 中提交的表单,登录的请求--> <result name="success">/</result> <result name="login">/login.jsp</result> </action> <action name="user_*" class="cn.itcast.domain.User" method="{1}"> <interceptor-ref name="mydefaultstack"></interceptor-ref> <!--拦截器 引用-->
相关文章推荐
- struts2异常处理,global-results定义全局结果处理
- struts2异常处理,global-results定义全局结果处理
- struts2异常处理,global-results定义全局结果处理
- struts2 结果类型的作用 type & 防止表单重复提交
- Struts2标签<s:token />防止表单重复提交
- Struts2防止表单重复提交 .
- Struts2手动防止表单重复提交
- Struts2防止表单重复提交
- Struts2防止表单重复提交
- struts2之防止表单重复提交
- Struts2防止表单重复提交
- 使用struts2拦截器实现防止表单数据重复提交
- 使用struts2来防止表单重复提交
- Struts2防止表单重复提交
- Struts2中防止表单重复提交
- struts2之防止表单重复提交
- struts2防止表单重复提交问题
- struts2 国际化与防止刷新重复提交表单
- struts2 国际化,防止刷新重复提交表单与邮箱格式验证
- 11.Struts2的防止表单的重复提交