在Spring 3.0示例中了解Ajax简化

时间:2012-09-22 22:11:49

标签: java ajax json spring spring-mvc

我试图在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 });
        }
    });
}

1 个答案:

答案 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 )。遗憾的是,文章中没有解释这一部分,也许你可以要求作者更新它?

相关问题