用spring处理ajax请求

时间:2010-05-10 14:44:00

标签: java ajax spring-mvc

这是我的问题,我需要使用spring映射AJAX请求。现在,我知道我需要这两个人:

HttpServletRequest,用于获取客户端发送给我的消息,并将其从JSON(最有可能)解析为Map和HttpServletResponse,以将我的消息发送给客户端。 我不知道的是正确(简单,简洁)的方式......

以下是springframework网站的代码示例:

/**
 * Normal comments here
 *
 * @@org.springframework.web.servlet.handler.metadata.PathMap("/foo.cgi")
 * @@org.springframework.web.servlet.handler.metadata.PathMap("/baz.cgi")
 */
public class FooController extends AbstractController {

    private Cruncher cruncher;

    public FooController(Cruncher cruncher) {
        this.cruncher = cruncher;
    }

    protected ModelAndView handleRequestInternal (
            HttpServletRequest request, HttpServletResponse response) throws Exception {
        return new ModelAndView("test");
    }
}

哪个好。除此之外,据我所知,我不能像对待这种同步请求那样映射该类中每个方法的URL:

@Controller
@RequestMapping("/test")
public class ControllerTest {
    @RequestMapping(value = "/test.htm", method = RequestMethod.GET)
    public void showSearchView(Model model) {...}
    ...
}

我可以为AJAX请求做一些简单的事吗?

2 个答案:

答案 0 :(得分:1)

不确定在SpringSource上找到第一个示例的位置!这是做旧的坏方法。我很确定AbstractController在Spring 3中甚至被标记为已弃用。

第二种方法适用于映射AJAX请求。如果你真的想自己解析它,HttpServletRequest和HttpServletResponse是该处理程序方法的合法参数。但是,Spring很高兴为您做到:http://blog.springsource.com/2010/01/25/ajax-simplifications-in-spring-3-0/

(如果你坚持使用旧版本的Spring,那么还有第三方库可以将JSON映射添加到处理程序。)

答案 1 :(得分:0)

这是我找到的答案。我修改了帖子中显示的方法,并在方法参数中添加了HttpServletRequest。

public void showSearchView(Model model, HttpServletRequest req, HttpServletRequest resp) {
        if(req==null||resp==null)throw new RuntimeException("OLOLOLOLOL xD");
}

就是这样。如果有人有更好的答案或评论,我会很高兴听到。