【问题标题】:Understanding Ajax Simplifications in Spring 3.0 example了解 Spring 3.0 中的 Ajax 简化示例
【发布时间】:2012-09-14 21:55:33
【问题描述】:

我正在尝试理解 http://blog.springsource.com/2010/01/25/ajax-simplifications-in-spring-3-0/ 的 Spring 示例。

我有一个问题要解决我的一些疑虑:

问题一:

在 $.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 });
        }
    });
}

【问题讨论】:

    标签: java ajax json spring spring-mvc


    【解决方案1】:

    对于完整的图片,这里是处理请求的控制器:

    @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部分,原文章中没有提到,但上面的handler方法似乎放在了一个具有类似声明的控制器中:

    @Controller
    @RequestMapping("/account")
    public class AccountController {
    

    当对/account/availability的请求到达服务器时,Spring MVC首先找到匹配URI开头(/account)的控制器,然后寻找匹配剩余部分(/availability)的方法。可惜这部分文章没有说明,请问作者可以更新一下吗?

    【讨论】:

    • 什么是函数availability.available关于这是一个java对象吗?
    • 所以你的意思是“帐户”是 URI 的一部分,但控制器值怎么只是“/可用性”?
    • 你还没有回答我关于 uri 的“帐户”部分是什么的问题
    • @dev_darin:查看我的更新,我解释了 URI 匹配的工作原理。
    • 非常感谢您让这一点更清楚。所以你的意思是你实际上可以从你的角度来调用两个不同的方法?如果是这样,我认为它很酷
    猜你喜欢
    • 2011-04-26
    • 1970-01-01
    • 2012-01-28
    • 2014-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多