总结 15/4/27

本文详细介绍了在Struts2框架中如何解决表单重复提交的问题,包括使用s:token标签、Token或TokenSession拦截器以及如何正确显示重复提交错误消息。通过实施这些策略,可以有效避免服务器负担过重和错误操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

表单重复提交

 

1.什么是表单重复提交

在不刷新表单页面的情况下:

  》多次点击提交按钮

  》已经提交成功,按"回退"之后,再点击"提交按钮"

  》在控制器响应页面的形式为转发情况下,若已提交成功,然后几点刷新(或者F5)

注意:》若刷新表单页面,再提交表单不算是重复提交

   》若使用的是redirect的响应类型,已经提交成功后,再点击刷新不算重复提交

 

表单重复提交的危害:

  》加重服务器负担

  》可能导致错误操作

struts2 解决表单重复提交问题

1.在s:form中添加s:token 子标签

  》生成一个隐藏域

  》在session 添加一个属性值

  》隐藏域中的值和session中的属性值是一致的。

2.使用Token或TokenSession拦截器

  》这两个拦截器均不在默认的拦截器栈中,所以需要手工配置

  》若使用Token拦截器,则需要配置一个token.valid 的 result

  》若使用TokenSession拦截器,则不需要配置任何其他的result

3.使用Token或TokenSession拦截器的区别

  》都是解决表单重复提交问题

  》使用Token拦截器会转到token.valid 这个 result

  》使用TokenSession 拦截器则还会响应那个目标页面,但不会执行目标TokenSession的后续拦截器,好像什么都没发生一样!

4.注意使用s:actionerror标签来显示重复提交的错误消息,改错误消息可以在国际化资源文件中覆盖

 

转载于:https://www.cnblogs.com/yydeyi/p/4460708.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值