dup*_*dup 24 java spring json spring-mvc jackson
我将我的messageconverter配置为杰克逊的
class Foo{int x; int y}
Run Code Online (Sandbox Code Playgroud)
并在控制器中
@ResponseBody
public Foo method(){
return new Foo(3,4)
}
Run Code Online (Sandbox Code Playgroud)
从那个我期望从服务器返回一个JSON字符串{x:'3',y:'4'},没有任何其他配置.但得到我的ajax请求的404错误响应
如果使用@ResponseBody注释该方法,则将返回类型写入响应HTTP正文.返回值将使用HttpMessageConverters转换为声明的方法参数类型.
我错了吗 ?或者我应该使用序列化程序将我的响应对象转换为Json字符串,然后将该字符串作为响应返回.(我可以正确地进行字符串响应)或者我应该进行其他配置吗?比如为Foo类添加注释
这是我的conf.xml
<bean id="jacksonMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
Run Code Online (Sandbox Code Playgroud)
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="jacksonMessageConverter"/>
</list>
</property>
Run Code Online (Sandbox Code Playgroud)
uth*_*ark 22
您需要以下内容:
<mvc:annotation-driven />在spring.xmlorg.codehaus.jackson:jackson-mapper-asl在类路径中放置jaskson jar(Maven artifactId ).使用如下:
@RequestMapping(method = { RequestMethod.GET, RequestMethod.POST })
public @ResponseBody Foo method(@Valid Request request, BindingResult result){
return new Foo(3,4)
}
Run Code Online (Sandbox Code Playgroud)这适合我.
请注意,那
@ResponseBody 应用于返回类型,而不是方法定义.@RequestMapping注释,以便Spring将检测它.HTTP 404 错误仅意味着找不到资源。这可能有两个原因:
要解决问题 1,请确保您使用或提供正确的请求 URL(区分大小写!)。要修复 2,请检查服务器启动日志是否有任何启动错误并进行相应修复。
这一切都超出了迄今为止发布的代码和信息。
| 归档时间: |
|
| 查看次数: |
68081 次 |
| 最近记录: |