Tin*_*iny 6 java ajax spring jsp spring-mvc
在Spring MVC(我正在使用3.0.2)中,两个HTTP方法总是(或者在我看来)主要是保留(即使用适当的处理程序映射),这些方法是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";
}
Run Code Online (Sandbox Code Playgroud)
在发出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";
}
Run Code Online (Sandbox Code Playgroud)
发出POST请求时会调用上述方法.假设Spring控制器被指定为@RequestMapping(value="admin_side/Temp")注释.
现在,如果我需要使用Ajax并且我需要执行与前面方法不同的功能,会发生什么?我既不能使用GET方法也不能使用POST方法处理另一个方法,因为已经映射了处理程序(HTTP方法,GET和POST都分别用于处理showForm()和onSubmit()方法).
为了演示起见,我使用的method=RequestMethod.PUT方法与阿贾克斯如
@RequestMapping(method=RequestMethod.PUT)
public @ResponseBody String getStateList(@ModelAttribute("tempBean") @Valid TempBean tempBean, BindingResult error, HttpServletRequest request, HttpServletResponse response)
{
return "Message";
}
Run Code Online (Sandbox Code Playgroud)
它按预期工作,但我觉得它不应该是最好的解决方案.你如何处理Spring MVC中的Ajax请求,如果你有这样的场景(实际上,对我来说似乎很常见)?我(总是)应该使用RequestMethod.PUT吗?(或者什么是Spring中最好的Ajax HTTP方法?)
有没有办法在同一个控制器映射多个方法具有相同的HTTP方法(一个明显的答案应该是没有)?再次,当您需要在Spring MVC中使用Ajax时,您使用哪种方法?希望你遵循我的意思!由于我的英语处于最初阶段,因此我很难表达.
AJAX不存在最佳方法。
至于应该使用什么方法,取决于建筑风格。REST 范式及其最常见的实际解释 ROA(面向资源的架构)对 HTTP 方法的语义做出了某些假设。这是一种越来越流行的方法,我认为值得一读。不过,要充分利用 REST 的优势,您可能需要重新考虑整个应用程序设计。如果您决定这样做,请阅读 REST、ROA 和 JAX-RS(RESTful 应用程序的 Java 标准)。它的实现可以与Spring集成。
或者,您可以坚持使用 GET 和 POST,因为它们是最广泛支持的方法。对于 Spring 本身,合理的方法是提供一个单独的 bean(或者可能是一组 bean)来处理基于 AJAX 的 API。如果您保持 URL 不同,则不会出现方法“冲突”。
| 归档时间: |
|
| 查看次数: |
5491 次 |
| 最近记录: |