java - 了解 Spring 3.0 示例中的 Ajax 简化

标签 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 });
        }
    });
}

最佳答案

为了获得完整的图片,这里是处理请求的 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/

相关文章:

javascript - PHP 未获取 session 最新值

Android:在 fragment 之间传递一个 JSONobject

java - GridBagLayout 中的 JTextPane 的行为不符合预期

java - 未记录的 Java 命令行选项?

php - list() 函数和 mysqli_fetch_array 一起工作吗?

javascript - Rails3 使用 text/html 内容类型而不是 text/javascript 呈现 js.erb 模板

javascript - $.ajax json 下拉菜单项

java - 将 JSONObject 转换为字符串并 long 返回 null

java - 范围 "provided"不添加到类路径中的 jars

java - Android Json数组数据错误并且无法从json数组索引中查找或获取数据