我试图在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 });
}
});
}
答案 0 :(得分:2)
要获得完整的图片,这里是处理请求的控制器:
@RequestMapping(value="/availability", method=RequestMethod.GET)
public @ResponseBody AvailabilityStatus getAvailability(@RequestParam String name) {
@RequestParam
注释至关重要。它:
表示应将方法参数绑定到Web请求参数
现在正在加油:
$.getJSON("account/availability", { name: $('#name').val() }
jQuery会向以下URI发出GET请求:account/availability?name=foo
。服务器端的@RequestParam
注释将提取name
参数并将其注入,以使控制器中的name
参数等于"foo"
。
更新:
关于URI的/account
部分,原始文章中没有提到它,但似乎上面的处理程序方法放在具有类似声明的控制器中:
@Controller
@RequestMapping("/account")
public class AccountController {
当/account/availability
的请求命中服务器时,Spring MVC首先发现控制器匹配URI的开头(/account
),然后查找匹配剩余部分的方法(/availability
)。遗憾的是,文章中没有解释这一部分,也许你可以要求作者更新它?