我试图理解 http://blog.springsource.com/2010/01/25/ajax-simplifications-in-spring-3-0/ 上的 Spring 示例.
我有一个问题需要解决我的一些疑虑:
问题1:
在 $.getJSON("account/availability",.... 他们是否传递对象帐户并调用 RequestMapping 可用性?
function checkAvailability() {
$.getJSON("account/availability", { name: $('#name').val() }, function(availability) {
if (availability.available) {
fieldValidated("name", { valid : true });
} else {
fieldValidated("name", { valid : false,
message : $('#name').val() + " is not available, try " + availability.suggestions });
}
});
}
最佳答案
为了获得完整的图片,这里是处理请求的 Controller :
@RequestMapping(value="/availability", method=RequestMethod.GET)
public @ResponseBody AvailabilityStatus getAvailability(@RequestParam String name) {
@RequestParam
注释至关重要。它:
indicates that a method parameter should be bound to a web request parameter
现在打电话时:
$.getJSON("account/availability", { name: $('#name').val() }
jQuery 将向以下 URI 发出 GET 请求:account/availability?name=foo
。服务器端的 @RequestParam
注解将提取 name
参数并注入(inject)它,以便 Controller 中的 name
参数等于 “foo”
。
更新:
关于 URI 中的 /account
部分,原文章中没有提及,但上面的 handler 方法似乎被放置在具有类似声明的 Controller 中:
@Controller
@RequestMapping("/account")
public class AccountController {
当对 /account/availability
的请求到达服务器时,Spring MVC 首先查找与 URI 开头 (/account
) 匹配的 Controller ,然后查找方法匹配剩余部分(/availability
)。遗憾的是这部分在文章中没有解释,也许你可以要求作者更新它?
关于java - 了解 Spring 3.0 示例中的 Ajax 简化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12548103/