spring mvc 重复提交

MARK:

Spring MVC如何防止重复提交?类似Struts Token机制!
首先,需要将继承了SimpleFormController之类的sessionForm设为true。这样,在显示一个新表单时,Spring会将 command存放在session中,而在提交表单时,Spring会从session中取出此command,随后立即从session中删除存放 command的attribute。如果发现在session中没有command,Spring将其断定为重复提交,转而执行 handleInvalidSubmit(request, response),可覆盖此方法负责防止重复提交的任务。

可以这么说,当setSessionForm(true)之后,如果没有先后经历显示表单、提交表单的过程,就会被认为是重复提交表单。

[url]http://www.blogjava.net/paulwong/archive/2012/02/20/370375.html[/url]


import java.util.Date;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;


public class FormControl extends SimpleFormController
{


public FormControl()
{
super();
this.setSessionForm(true);
}

@Override
protected ModelAndView onSubmit(Object command) throws Exception
{

ModelAndView res = new ModelAndView("form","now",new Date());
res.addObject("amwu", "28");

return res;
}

@Override
protected ModelAndView handleInvalidSubmit(HttpServletRequest request,
HttpServletResponse response) throws Exception
{
System.out.println("handleInvalidSubmit(request, response)");
return super.handleInvalidSubmit(request, response);
}

@Override
protected Object formBackingObject(HttpServletRequest request)
throws Exception
{
return request;
}



}



<bean id="formControl" class="FormControl"></bean>
<bean
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/hello.html">springControl</prop>
<prop key="/form.html">formControl</prop>
</props>
</property>
</bean>



网上示例:
[url]http://www.blogjava.net/liuwentao253/archive/2007/01/31/96982.html[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值