Spring 3.0使用Jackson消息转换器进行JSON响应
我将我的messageconverter配置为Jackson的
class Foo{int x; int y}
并在控制器中
@ResponseBodypublic Foo method(){
return new Foo(3,4)
}
从该即时消息期望从服务器返回JSON字符串{x:‘3’,y:‘4’},而无需任何其他配置。但是收到对我的ajax请求的404错误响应
如果使用@ResponseBody注释该方法,则将返回类型写入响应HTTP正文。该返回值将使用HttpMessageConverters转换为声明的方法参数类型。
我错了吗 ?还是我自己使用序列化器将我的response对象转换为Json字符串,然后将该字符串作为响应返回(我可以正确地进行字符串响应),还是应该进行其他配置?像为Foo类添加注释
这是我的conf.xml
<bean id="jacksonMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="jacksonMessageConverter"/>
</list>
</property>
回答:
你需要以下内容:
- 设置注解驱动的编程模型:将
<mvc:annotation-driven />
在spring.xml - 将jaskson jar(Maven artifactId为
org.codehaus.jackson:jackson-mapper-asl
)放在classpath中。 - 用作以下用途:
@RequestMapping(method = { RequestMethod.GET, RequestMethod.POST })public @ResponseBody Foo method(@Valid Request request, BindingResult result){
return new Foo(3,4)
}
这对我有用。
请注意,
1.@ResponseBody
适用于返回类型,而不是方法定义。
2. 你需要@RequestMapping
注释,以便Spring可以检测到它。
以上是 Spring 3.0使用Jackson消息转换器进行JSON响应 的全部内容, 来源链接: utcz.com/qa/421312.html