springmvc4整合AJAX使用@ResponseBody注解返回JSON数据格式
一、在使用springMVC4+Hibernate4集成框架,需要使用到@ResponseBody注解来配合AJAX的使用,
但依靠springMVC3的配置和jar包可能会出现
1. java.lang.ClassNotFoundException: com.fasterxml.jackson.core.Jso;
2. java.lang.IllegalStateException: LifecycleProcessor not initialized - call 'refresh' before ;
等的问题,所以需要配置新增的jar包来实现该功能;
新的jar包有4个包括:jackson-jr-all-2.4.3.jar;jackson-annotations-2.6.0.jar;jackson-core-2.6.0.jar;jackson-databind-2.6.0.jar;
二、在此顺便讲一下@ResponseBody的作用:
1.使用了@ResponseBody能够直接将controller返回的bean对象或map对象等自动进行json或xml格式的转换,无需再使用JSONObject或者
response.setContentType("application/json")+PrintWriter来将返回的bean、String、map对象转换成JSON格式,再输出到页面上;
即:
使用之前,普通的配合AJAX需要controller这样返回JSON数据格式:
@ResponseBody注解的使用方式如下,而使用@ResponseBody之后配合AJAX可以controller这样返回JSON格式数据:
2. 还有使用@ResponseBody的一个特别之处就是,在使用此注解之后不会再走返回视图处理器路径,而是直接将数据写入到输入流中,
等同于使用response.getWriter().print(data)输出到页面上;
三、再链接讲一下,当需要使用@ResponseBody注解时,该如何进行配置呢?
使用springmvc框架时,第一次使用@ResponseBody注解的时候,可能会试着直接在controller的方法上使用这个注解来返回JSON格式数据,
但是这样往往会得不到预期的效果,会出现很多的exception错误。这种情况是正常的,因为你还没有配置好使用这个@ResponseBody注解的
相关jar包和xml。
1. 对于springmvc4版本的话,整合AJAX异步更新操作和返回JSON数据,使用@ResponseBody注解的话,相关需要的jar包就是上面的那4个,
下载的链接在博客最后;
2. 对于xml配置的话,也不是很复杂,只需要在springmvc-servlet里面加上以下的配置即可:
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="mappingJackson2HttpMessageConverter" />
</list>
</property>
</bean>
<bean id="mappingJackson2HttpMessageConverter"
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>application/json;charset=UTF-8</value>
<value>text/html;charset=UTF-8</value>
<value>text/json;charset=UTF-8</value>
</list>
</property>
</bean>
四、附上相关的jar包下载链接,资源都是免费共享:http://download.csdn.net/detail/alan_liuyue/9699971
更多推荐
所有评论(0)