好吧,我承认,MyEclipse这东西是很好用,但是问题也多多。折腾了两小时spring libs之后,再加上jackson 1.8.0,一切正常。
spring-framework-3.0.5 + jackson-1.8.0-all + n多spring依赖的jar
以下内容仅供参考,是MyEclipse带的spring-3.0.1,然后加上自己下载的jackson lib。
spring mvc很不错,就是json支持很折腾人,jquery getJSON请求返回406 not acceptable
搜了半天,看了一堆文章帖子,各种网站都看过了,javaeye、csdn、blogjava、stackoverflow、eclipse.org、blog.springsource.org... 总结一下也就3个(2和3加进去错误依旧,3都没有必要添加)
1. 添加 jackson json lib http://wiki.fasterxml.com/JacksonDownload
2. xml添加 <mvc:annotation-driven />
3. xml添加 org.springframework.http.converter.json.MappingJacksonHttpMessageConverter
从jackson json网站上下了各版本的jar,加进去,报错找不到方法,从v1.7到v1.2不同版本的还都不一样:
org.codehaus.jackson.type.JavaType.init
org.codehaus.jackson.type.JavaType.isFullyTyped()
org.codehaus.jackson.map.MappingJsonFactory.setCodec()
最后尝试1.0.1的,成功。jackson json这破玩意竟然不向前兼容,新版本里面去掉或者修改了一些个方法
web.xml
<!-- Handles all requests into the application -->
<servlet>
<servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-mvc-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
spring-mvc-servlet.xml
<mvc:annotation-driven />
<context:component-scan base-package="demo.controller" />
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp"/>
<property name="suffix" value=".jsp"/>
</bean>
UserController.java
@RequestMapping(value="/user/check_username_available")
public @ResponseBody boolean checkUsernameAvailable(@RequestParam String username){
//TODO
return false;
}
javascript
var params = {username: $("#username").val()};
var url = ctx + "/user/check_username_available.htm";
$.getJSON(url, params, function(json){
console.log(json);
});
分享到:
相关推荐
本篇文章将深入探讨这个问题,提供解决方案,并涉及Spring MVC、Jackson等相关技术。 首先,理解`@ResponseBody`的作用至关重要。它是Spring MVC中的一个注解,用于指示控制器方法的返回值应直接写入HTTP响应体,而...
标题中的“Spring MVC – Easy REST-Based JSON Services with @ResponseBody”是指使用Spring MVC框架构建基于REST的JSON服务,并通过使用`@ResponseBody`注解来简化这一过程。REST(Representational State ...
Spring MVC中的`@ResponseBody`注解可以将方法的返回值直接转换为JSON格式发送到客户端,而`@RequestBody`则可以将请求体中的JSON数据解析成Java对象。 **Jackson** Jackson是Java中广泛使用的JSON库,它可以高效地...
标题提到的"最新版本 Jackson 2.8.2 jar与Spring 4.x @ResponseBody配合使用"涉及到的关键知识点包括Jackson的三个核心模块,以及如何在Spring MVC中利用这些模块实现RESTful API的数据响应。 1. **Jackson核心模块...
总结,Spring MVC处理JSON数据的关键在于`@RequestBody`和`@ResponseBody`注解以及HttpMessageConverter。`@RequestBody`用于将JSON请求体映射到方法参数,`@ResponseBody`用于将方法返回值转换为JSON响应。通过集成...
2. **配置 Spring MVC**:在 Spring MVC 的配置文件中,我们需要添加 `Jackson` 的转换器,使得 Spring MVC 能够解析和生成 JSON 数据。例如,在使用 XML 配置时,可以添加以下配置: ```xml <bean class="org....
本文将详细讨论如何在Spring MVC中针对`ResponseBody`返回的JSON数据进行脱敏处理。 首先,我们需要了解`ResponseBody`注解的作用。在Spring MVC中,当控制器方法的返回值前加上`@ResponseBody`时,Spring会将返回...
-- @ResponseBody() spring-mvc 3 xml 配置--> <!--处理 @ResponseBody 中文乱码问题 --> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> ...
总之,`@ResponseBody`、`@RequestBody`和`@PathVariable`是Spring MVC中不可或缺的三大注解,它们在构建RESTful服务时起着至关重要的作用。掌握它们的用法和工作原理,能够提升我们的开发效率,使我们更好地利用...
总之,"Spring MVC JSON学习"涵盖了许多关键概念,包括JSON数据的序列化和反序列化、控制器中使用`@RequestBody`和`@ResponseBody`、自定义序列化逻辑以及测试JSON API。掌握这些知识点将使你能够构建出高效、健壮的...
《Spring MVC之@RequestMapping详解》 在Java Web开发中,Spring MVC框架因其强大的功能和灵活性而备受青睐。在处理HTTP请求时,@RequestMapping注解扮演着至关重要的角色,它负责将客户端的请求映射到控制器中的...
描述中提到的"springmvc进行Jason数据封装转化时可以即使用也是@responsebody",指的是在Spring MVC的控制器(Controller)中,我们可以使用`@ResponseBody`注解配合Jackson库,实现将Java对象直接转换为JSON格式的...
综上所述,`@ResponseBody`是Spring MVC中实现数据返回的关键组件,它使得我们可以方便地构建RESTful服务,与各种数据格式进行交互。理解其工作原理和使用方式,有助于我们更好地设计和实现高效的Web应用程序。
- 对于JSON数据,Spring MVC默认使用了Jackson库(Jackson2HttpMessageConverter)。若要返回JSON数据,确保项目已引入Jackson库,并且返回类型可被Jackson序列化。 - 对于XML数据,Spring MVC默认使用了JAXB库...
要生成JSON响应,你需要确保Spring MVC项目包含了Jackson库,这是一个常用的JSON处理库。在Gradle中,你可以在`build.gradle`文件中添加以下依赖: ```groovy implementation '...
在实际开发中,`@RequestBody` 和 `@ResponseBody` 的组合使用使得Spring MVC能够轻松地处理RESTful API的请求和响应。它们简化了数据交换的过程,减少了手动序列化和反序列化的代码,提高了开发效率。通过理解这两...
在Spring MVC 4.x版本中,开发者可以使用@ResponseBody注解来简化控制器层向客户端返回JSON格式数据的过程。 ### @ResponseBody注解使用方法 @ResponseBody注解可以作用于方法上,它会指示Spring MVC框架将该方法...
总结,Spring MVC处理JSON数据的关键在于引入正确的jar包(如Jackson库),配置Spring MVC以支持JSON,以及在控制器中使用适当的注解。通过理解这些基础知识,开发者可以有效地在Spring MVC应用中进行JSON数据的交互...
**Spring3 MVC与Ajax结合使用JSON** 在现代Web开发中,Spring框架的MVC模块与Ajax和JSON的集成是创建动态、响应式用户界面的关键技术。这个"Spring3 MVC Ajax with JSON"项目提供了一个Eclipse工程,包含了实现这一...
本篇文章主要介绍了两种处理Spring Boot中`@ResponseBody`转换JSON时Date类型的方法:Jackson和FastJson。 ### Jackson处理Date类型 Jackson是Spring Boot默认的JSON库,它提供了多种方式来格式化Date字段。 ####...