Spring 3.0使用Jackson消息转换器进行JSON响应

我将我的messageconverter配置为Jackson的

class Foo{int x; int y}

并在控制器中

@ResponseBody

public 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>

回答:

你需要以下内容:

  1. 设置注解驱动的编程模型:将<mvc:annotation-driven />在spring.xml
  2. 将jaskson jar(Maven artifactId为org.codehaus.jackson:jackson-mapper-asl)放在classpath中。
  3. 用作以下用途:

@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

回到顶部