在Spring MVC中(我使用的是3.0.2版本),两种HTTP方法总是(或者在我的看来大多数情况下)被保留(即映射到相应的处理程序),它们是GET和POST。
当发出GET请求时,将调用上述方法。
当发起POST请求时,将调用上述方法。假设Spring控制器指定了
如果我需要使用Ajax并且需要执行不同于前面所述方法的功能呢?既不能使用GET方法处理另一个方法,也不能使用POST方法,因为已经映射了处理程序(GET和POST方法都是保留以处理
@RequestMapping(method=RequestMethod.GET)
public String showForm(Map model)
{
//Usually retrieve data from the database when the page is loaded.
return "admin_side/Temp";
}
当发出GET请求时,将调用上述方法。
@RequestMapping(method=RequestMethod.POST)
public String onSubmit(@ModelAttribute("tempBean") @Valid TempBean tempBean, BindingResult error, Map model, HttpServletRequest request, HttpServletResponse response)
{
//Perform some basic operations with the database like insert, update or delete when the form is submitted (by clicking a submit button or so).
return "admin_side/Temp";
}
当发起POST请求时,将调用上述方法。假设Spring控制器指定了
@RequestMapping(value="admin_side/Temp")
注释。
如果我需要使用Ajax并且需要执行不同于前面所述方法的功能呢?既不能使用GET方法处理另一个方法,也不能使用POST方法,因为已经映射了处理程序(GET和POST方法都是保留以处理
showForm()
和onSubmit()
方法)。 为了演示,我使用了method=RequestMethod.PUT
方法来结合Ajax。@RequestMapping(method=RequestMethod.PUT)
public @ResponseBody String getStateList(@ModelAttribute("tempBean") @Valid TempBean tempBean, BindingResult error, HttpServletRequest request, HttpServletResponse response)
{
return "Message";
}
我当时的做法虽然可行,但感觉不是最佳解决方案。如果你遇到了这种情况,即如何在Spring MVC中处理Ajax请求?(实际上,这对我来说似乎很常见)在Spring中,我是否应该(总是)使用RequestMethod.PUT
?(还是说在Spring中使用哪种HTTP方法最好适用于Ajax?)
是否有一种方法可以将同一控制器中的多个方法映射到相同的HTTP方法上(显然答案应该是< strong>否)?再次问你,在Spring MVC中需要处理Ajax时,你通常采用哪种方法?希望你理解我的意思!由于我的英语水平处于初级阶段,所以我表述得很困难。
List <?>
)。我现在不知道它,但是Spring MVC 3.0.2应该支持一些像JSON这样的机制。你知道吗?我的意思是,如果你在Spring MVC中使用过这样的东西,你有一些链接吗?如果您认为这不是原始问题,您可以拒绝我的请求。谢谢。 - Tiny