2011-10-04 105 views
0

我试图在Spring 3中设置一个控制器来处理来自前端的AJAX请求。我看了一下这个页面,它非常简洁地解释它:http://blog.springsource.com/2010/01/25/ajax-simplifications-in-spring-3-0/Spring 3中的JSON请求404错误

我能够让示例应用程序正常工作。然而,在我自己的应用程序中,它只是得到一个404,当我请求的网址应该是...

这里是我的Java代码(它现在只需要一个String参数并返回它):

@RequestMapping(value="/test", method=RequestMethod.GET) 
public @ResponseBody String test(@RequestParam String teacherId) { 

    return teacherId; 
} 

当我尝试,并通过jQuery的方法的getJSON调用这个,我得到一个404

jQuery.getJSON("test", {teacherId:"123"}); 

我在我的应用程序-servlet.xml中的标签,和Maven正在采取3杰克逊的罐子(核心,jaxrs和mapper,所有版本1.8.5)一个d将它们打包在webapp中。我唯一能想到的就是Spring Security不允许访问这个路径,但是这个属性应该让已认证的用户可以访问: intercept-url pattern =“/ **”access =“ROLE_USER”

所以我不知道我错过了什么。

回答

0

我想通了,从这个职位的问题 - No mapping found for HTTP request with URI [/WEB-INF/pages/apiForm.jsp]

如果我在servlet映射特殊的DispatcherServlet的,像这样添加扩展名:

<servlet-mapping> 
     <servlet-name>palladium</servlet-name> 
     <url-pattern>*.json</url-pattern> 
</servlet-mapping> 

,然后添加扩展到请求映射注释:

@RequestMapping(value="/test.json", method=RequestMethod.GET) 

事情工作正常。