Spring3 MVC 输出JSON
来源:互联网 发布:淘宝链接转换淘口令 编辑:程序博客网 时间:2024/06/08 00:05
Spring4,推荐
代码
https://github.com/dzetJavaEE/spring3_mvc_tutorial
三种输出JSON 的方式,简介
如果想要获取多种格式的数据,
可查询 spring3 contentnegotiatingviewresolver json
1 配置 AnnotationMethodHandlerAdapter,
返回Response Entity< T > 或者使用方法注解 @ResponseBody
(限制有点大)
2 借助Servlet特性,HttpServletResponse,
获取getWriter(),输出转化好的Json数据(其他格式也可以,转化即可)
3 返回 new ModelAndView( 视图名称,模型数据名称,模型数据)
模型数据需要转化为JSON(其他格式也可以,转化即可)
new ModelAndView( “jsonmsg”,”message”,模型数据),
例如:jsonmsg.jsp
jsp里只有${message}
所需json jar包 maven(部分)(完整在下方)
<!-- Jackson JSON Mapper --> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.7.1</version> </dependency> <!-- fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.39</version> </dependency>
spring3-serlvet.xml 配置(部分)(完整在下方)
使用@ResponseBody注解,就需要配置 AnnotationMethodHandlerAdapter
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" p:messageConverters-ref="messageConverters" /> <utils:list id="messageConverters"> <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"/> </utils:list>
fruit controller
三种方式
见方法文档注释
package com.web;import com.alibaba.fastjson.JSON;import com.web.model.Fruit;import org.springframework.http.HttpStatus;import org.springframework.http.ResponseEntity;import org.springframework.stereotype.Controller;import org.springframework.ui.ModelMap;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletResponse;import java.io.IOException;import java.io.PrintWriter;@Controller@RequestMapping("/fruit")public class FruitController { /** * 0 方式一 1 * 1 配置 AnnotationMethodHandlerAdapter * 2 返回 ResponseEntity<?> * @return */ @RequestMapping(value = "/banana1") public ResponseEntity<Fruit> getBanana1() { Fruit fruit = new Fruit("banana1", 1001); return new ResponseEntity<Fruit>(fruit, HttpStatus.OK); } /** * 0 方式一 2 * 1 配置 AnnotationMethodHandlerAdapter * 2 使用注解 @ResponseBody * @return */ @ResponseBody @RequestMapping(value = "/banana2") public Fruit getBanana2() { Fruit fruit = new Fruit("banana2", 1002); return fruit; } /** * 0 方式二 * 1 方法参数 HttpServletResponse * 2 获取getWriter() 输出数据print(xxx) * @param res * @throws IOException */ @RequestMapping(value = "/banana3") public void getBanana3(HttpServletResponse res) throws IOException { Fruit fruit = new Fruit("banana3", 1003); PrintWriter out = res.getWriter(); out.print(JSON.toJSON(fruit)); // <=== json out.flush(); out.close(); } /** * 0 方式三 * 1 ModelAndView( 视图名称, 数据模型名称, 数据模型数据) * @return */ @RequestMapping(value = "/banana4") public ModelAndView getBanana4(){ Fruit fruit = new Fruit("banana3", 1003); return new ModelAndView("jsonmessage", "message", JSON.toJSON(fruit)); }}
完整maven依赖
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>test</groupId> <artifactId>spring3_mvc_tutorial</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>spring3_mvc_tutorial Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <!--junit测试 依赖--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!--web依赖--> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>3.0-alpha-1</version> </dependency> <dependency> <groupId>org.apache.taglibs</groupId> <artifactId>taglibs-standard-impl</artifactId> <version>1.2.5</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <!--spring 依赖--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>3.1.2.RELEASE</version> </dependency> <!-- Jackson JSON Mapper --> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.7.1</version> </dependency> <!-- fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.39</version> </dependency> </dependencies> <build> <finalName>spring3_mvc_tutorial</finalName> </build></project>
完整spring-servlet.xml 配置
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:utils="http://www.springframework.org/schema/util" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"> <context:component-scan base-package="com"/> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" p:messageConverters-ref="messageConverters" /> <utils:list id="messageConverters"> <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"/> </utils:list> <!--p:viewClass="org.springframework.web.servlet.view.JstlView"--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/jsp/" p:suffix=".jsp" /></beans>
文章推荐:
http://www.cnblogs.com/zhujiabin/p/5122931.html
end
阅读全文
0 0
- Spring3 MVC 输出JSON
- spring3 mvc json问题
- Spring3 MVC 和JSON整合
- Spring3 MVC 整合JSON 实例
- spring mvc 输出 json
- Spring Mvc 输出 Json
- spring3.0.5MVC ajax+json 的问题
- spring MVC之返回JSON数据(Spring3.0 MVC)
- spring MVC之返回JSON数据(Spring3.0 MVC)
- spring MVC之返回JSON数据(Spring3.0 MVC)
- spring MVC之返回JSON数据(Spring3.0 MVC)
- spring2.5 mvc 以及spring3.0 mvc ajax+json
- MVC中JsonResult输出Json
- spring3 mvc
- Spring3 MVC
- Spring3 MVC
- Spring3 MVC
- Spring3 MVC
- MVC框架
- 基于角色的权限设计(一)
- 数十种TF案例
- mvp开发实际操作
- 模板方法设计模式
- Spring3 MVC 输出JSON
- WPS的那些神技巧你会了就离升职加薪不远了
- java中的继承
- 最小费用最大流的问题
- ArrayList,HashMap,LinkedList 初始化大小和 扩容机制
- 特斯拉首次正面回应在华建厂事宜!别高兴太早,独资建厂的特斯拉给不了你白菜价
- Django 重写user表
- 慢查优化
- 认识name属性