SpringMVC返回json数据的三种方式
2015-08-18 15:09
477 查看
1、第一种方式是spring2时代的产物,也就是每个json视图controller配置一个Jsoniew。
如:<bean id="defaultJsonView" class="org.springframework.web.servlet.view.json.MappingJacksonJsonView"/>
或者<bean id="defaultJsonView" class="org.springframework.web.servlet.view.json.MappingJackson2JsonView"/>
同样要用jackson的jar包。
2、第二种使用JSON工具将对象序列化成json,常用工具Jackson,fastjson,gson。
利用HttpServletResponse,然后获取response.getOutputStream()或response.getWriter()
直接输出。
示例:
public class JsonUtil
3、第三种利用spring mvc3的注解@ResponseBody
例如:
在spring-servlet 配置中配置:
注意:当springMVC-servlet.xml中使用<mvc:annotation-driven />时,如果是3.1之前已经默认注入AnnotationMethodHandlerAdapter,3.1之后默认注入RequestMappingHandlerAdapter只需加上上面提及的jar包即可!
如果是手动注入RequestMappingHandlerAdapter 可以这样设置
配置如下:
添加json的jar包
jackson-mapper-asl-*.jar
jackson-core-asl-*.jar
如:<bean id="defaultJsonView" class="org.springframework.web.servlet.view.json.MappingJacksonJsonView"/>
或者<bean id="defaultJsonView" class="org.springframework.web.servlet.view.json.MappingJackson2JsonView"/>
同样要用jackson的jar包。
2、第二种使用JSON工具将对象序列化成json,常用工具Jackson,fastjson,gson。
利用HttpServletResponse,然后获取response.getOutputStream()或response.getWriter()
直接输出。
示例:
public class JsonUtil
public class JsonUtil { private static Gson gson=new Gson(); /** * @MethodName : toJson * @Description : 将对象转为JSON串,此方法能够满足大部分需求 * @param src * :将要被转化的对象 * @return :转化后的JSON串 */ public static String toJson(Object src) { if (src == null) { return gson.toJson(JsonNull.INSTANCE); } return gson.toJson(src); } }
3、第三种利用spring mvc3的注解@ResponseBody
例如:
@ResponseBody @RequestMapping("/list") public List<String> list(ModelMap modelMap) { String hql = "select c from Clothing c "; Page<Clothing> page = new Page<Clothing>(); page.setPageSize(6); page = clothingServiceImpl.queryForPageByHql(page, hql); return page.getResult(); }
在spring-servlet 配置中配置:
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="jsonConverter"/> </list> </property> <bean id="jsonConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> <property name="supportedMediaTypes" value="application/json"/> </bean>
注意:当springMVC-servlet.xml中使用<mvc:annotation-driven />时,如果是3.1之前已经默认注入AnnotationMethodHandlerAdapter,3.1之后默认注入RequestMappingHandlerAdapter只需加上上面提及的jar包即可!
如果是手动注入RequestMappingHandlerAdapter 可以这样设置
配置如下:
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" p:ignoreDefaultModelOnRedirect="true" > <property name="messageConverters"> <list> <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"/> </list> </property> </bean>
添加json的jar包
jackson-mapper-asl-*.jar
jackson-core-asl-*.jar
相关文章推荐
- spring集成ACEGI 进行权限控制
- 《Java设计模式》之享元模式
- leetcode-94:Binary Tree Inorder Traversal (Java)
- leetcode-94:Binary Tree Inorder Traversal (Java)
- java工厂方法模式
- 150818_工具eclipse_调试
- java设计模式之代理模式程序举例
- java mavn 2.注意事项
- springMVC 获取本地项目路径 及后整理上传文件的方法
- java对cookie的操作
- SpringMVC注解配置
- Java反射的几个方法区别
- 《Java设计模式 》之责任链模式
- java.lang.StackOverflowError when calling count()
- Java多线程-并发协作(生产者消费者模型)
- simpleDateFormat 使用
- MyEclipse快捷键大全
- Java和Flex积分误差(两)
- java在url传输前更改字符编码
- 杭电ACM2048java做法