这是我的问题,我需要使用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请求做一些简单的事吗?
答案 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");
}
就是这样。如果有人有更好的答案或评论,我会很高兴听到。