`

SpringMVC生成JSON(三)

 
阅读更多

基于上一篇文章的代码基础上

一、准备工作

1、 下载依赖库jar包

   Jackson的jar all下载地址:http://wiki.fasterxml.com/JacksonDownload

   jackson-core-asl.jar

   jackson-mapper-as.jar

 

    

二、修改配置文件spmvc-servlet.xml

   

<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:mvc="http://www.springframework.org/schema/mvc"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:util="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/mvc/spring-mvc
          http://www.springframework.org/schema/mvc/spring-mvc-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-2.0.xsd">

    <!-- 自动扫描注解的Controller -->
	<context:component-scan base-package="com.wy.controller.annotation" />
	
	<!-- 处理在类级别上的@RequestMapping注解-->
	<bean
		class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
	<!-- 处理方法级别上的@RequestMapping注解-->
	<bean
		class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" >
	    <property name="messageConverters">  
         	<util:list id="beanList">  
                <ref bean="mappingJacksonHttpMessageConverter"/>  
        	</util:list>  
    	</property> 
	</bean>
	 
	<!-- 视图解析器策略 和 视图解析器 -->
	<!-- 对JSTL提供良好的支持 -->
	<bean
		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<!-- 默认的viewClass,可以不用配置
		<property name="viewClass" value="org.springframework.web.servlet.view.InternalResourceView" />
		 -->
		<property name="prefix" value="/WEB-INF/page/" />
		<property name="suffix" value=".jsp" />
	</bean>
	
	<!-- 处理JSON数据转换的 -->
	<bean id="mappingJacksonHttpMessageConverter" 
	    class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> 
	    <!-- 为了处理返回的JSON数据的编码,默认是ISO-88859-1的,这里把它设置为UTF-8,解决有乱码的情况 --> 
    	<property name="supportedMediaTypes">  
       		<list>  
          		  <value>text/html;charset=UTF-8</value>  
       	 	</list>  
    	</property>  
	</bean>  
	
	
    <!-- 
       ResourceBundleViewResolver通过basename所指定的ResourceBundle解析视图名。
                  对每个待解析的视图,ResourceBundle里的[视图名].class所对应的值就是实现该视图的类。
                  同样,[视图名].url所对应的值是该视图所对应的URL。
                  可以指定一个parent view,其它的视图都可以从parent view扩展。
                  用这种方法,可以声明一个默认的视图。
     
	<bean id="messageSource"
		class="org.springframework.context.support.ResourceBundleMessageSource">
		<property name="basename" value="welcome" />
	</bean>
	-->
	
</beans>

 

 

 二、注解的Controller

 

 

package com.wy.controller.annotation;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.apache.log4j.Logger;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
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.ServletRequestBindingException;
import org.springframework.web.bind.ServletRequestUtils;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import com.wy.pojo.User;

/**
 * SpringMVC 注解 内置支持
 * @author Administrator
 *
 */
@Controller
@RequestMapping("/entryOrJsonController")
public class EntryOrJsonController {

	private Logger log = Logger.getLogger(EntryOrJsonController.class);
	
	/**
	 * 输入为JSON格式的数据的方式 
	 * 1、@RequestBody 将httpRequest的body绑定到方法参数上
	 * @param param
	 * @return
	 */
    @RequestMapping(value = "/annotationParam", method = RequestMethod.POST)
	public ModelAndView annotationParam(@RequestBody User user){
    	ModelAndView mav = new ModelAndView();
    	log.info("============"+user);
    	mav.setViewName("welcome");
		return mav;
    }
	
	/**
	 * 输出为JSON格式的数据的方式 
	 * 1、@ResponseBody的作用是把返回值直接写到HTTP response body里
	 * @param session
	 * @return
	 * @throws ServletRequestBindingException
	 */
	@RequestMapping(value = "/commonReturnType" , method = RequestMethod.GET)
	@ResponseBody 
	public ModelAndView commonReturnType(HttpSession session) throws ServletRequestBindingException{
		ModelAndView mav = new ModelAndView();
		session.setAttribute("userName", "使用ResponseBody输出!");
		log.info("=================使用ResponseBody输出====================");
		ModelMap modelMap = new ModelMap();
		modelMap.put("mapKey", "mapValue");
		modelMap.addAttribute("attributeKey", "attributeValue");
		
		mav.addObject("model", modelMap);
		mav.addObject("modelMap", modelMap);
		mav.setViewName("welcome");
		return mav;
	}
	
	/**
	 * 输出为JSON格式的数据的方式
	 * 2、ResponseEntity<?>
	 * @return
	 */
	@RequestMapping(value = "/annotationReturnType" , method = RequestMethod.GET)
	public ResponseEntity<String> annotationReturnType(){
		log.info("=================使用ResponseEntity<?>输出====================");
		HttpHeaders httpHeaders = new HttpHeaders();
		ResponseEntity<String> responseEntity = new ResponseEntity<String>("Hello WY!", httpHeaders, HttpStatus.CREATED);
		return responseEntity;
	}
	
	/**
	 * 输入 和输出为JSON格式的数据的方式
	 * 3、HttpEntity<?> ResponseEntity<?>
	 * @param u
	 * @return
	 */
	@RequestMapping(value = "/annotationParamsReturn", method = RequestMethod.GET) 
	@ResponseBody 
    public ResponseEntity<String> annotationParamsReturn(HttpEntity<User> user){
		String temp = user.getBody().getUsername();
        ResponseEntity<String> responseResult = new ResponseEntity<String>(temp, HttpStatus.OK);   
        return responseResult;   
    }  
	
	/**
	 * 
	 * @param request
	 * @param session
	 * @return
	 * @throws ServletRequestBindingException
	 */
	@RequestMapping(value = "/login" , method = RequestMethod.GET)
	public ModelAndView login(HttpServletRequest request, HttpSession session) throws ServletRequestBindingException{
		ModelAndView mav = new ModelAndView();
		String userName = request.getParameter("userName");
		String password = ServletRequestUtils.getStringParameter(request, "password");
		log.info("============================\r\n接收到的参数: "+userName+" "+password);
		session.setAttribute("userName", userName);
		mav.setViewName("welcome");
		return mav;
	}
}

 

 

  

 

分享到:
评论
1 楼 beam 2015-08-28  
写的很好

相关推荐

    springmvc加入json支持

    2. `jackson-core-2.4.2.jar`: Jackson核心库提供了基本的JSON解析和生成功能。它是其他Jackson模块(如databind和annotations)的基础,包含了流式API(JsonParser和JsonGenerator)以及数据绑定的基础结构。 3. `...

    springmvc操作json数据所需的jar包

    在描述中提到的文件"springmvc-json"可能包含了Spring MVC与JSON交互所需的一些依赖,如Jackson库的jar文件。Jackson库由多个组件组成,主要包括: 1. **Jackson-core**: 这是Jackson库的基础模块,提供了基本的...

    SpringMVC生成JSON(二)

    在本篇博文中,我们将深入探讨如何在SpringMVC框架中生成JSON响应,这是Web开发中的常见需求。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它易于人阅读和编写,同时也易于机器解析和生成。在...

    SpringMVC 生成JSON(一)

    在本文中,我们将深入探讨如何在Spring MVC框架中生成JSON响应。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛应用于Web服务和客户端之间的数据传输,因其简洁、易读、易解析的特性而受到...

    springmvc加入json支持.zip

    - `jackson-core-2.4.2.jar`:核心库,提供了JSON流API,用于低级别的JSON解析和生成,是Jackson的基础。 - `jackson-annotations-2.4.0.jar`:包含了一组注解,用于定制序列化和反序列化的行为,比如`@...

    IDEA+Gradle+SpringMVC+Json

    **IDEA + Gradle + SpringMVC + Json:构建现代Web应用** 在当前快速发展的IT行业中,集成开发环境(IDE)IntelliJ IDEA、构建工具Gradle、MVC框架Spring MVC以及数据交换格式Json,是构建高效、灵活的Java Web应用...

    springmvc-json-lib.rar

    而JSON作为一种轻量级的数据交换格式,因其易于人阅读和编写,同时也易于机器解析和生成,成为数据传输的首选。本文将深入探讨如何在SpringMVC项目中集成并使用JSON库,以实现高效的数据交换。 首先,我们需要了解...

    springmvc对json支持

    7. **Jackson配置**:Spring MVC允许我们通过`ObjectMapper`的配置来影响JSON的生成,比如设置日期格式、启用或禁用特定特性,或者注册自定义的模块。这可以通过`Jackson2ObjectMapperBuilder`或`WebMvcConfigurer`...

    SpringMVC的json依赖jar包

    SpringMVC是Spring框架的一部分,专门...总之,Jackson库通过`jackson-databind`、`jackson-core`和`jackson-annotations`这三个jar包,使得SpringMVC能够高效、灵活地处理JSON数据,极大地简化了Web开发中的数据交换。

    springmvc转json所需jar

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。Spring MVC提供了对JSON的支持,通过集成第三方库如Jackson,可以方便地实现对象到JSON的转换。 ...

    springMVC返回json数据需要的两个架包

    在本案例中,"springMVC返回json数据需要的两个架包"指的是`jackson-mapper-asl-1.9.13.jar`和`jackson-core-asl-1.9.13.jar`。 1. Jackson库:这两个jar文件属于Jackson库的一部分,Jackson是Java中广泛使用的JSON...

    springmvc中json转换的jar

    Jackson核心库是Jackson框架的基础部分,提供了JSON解析和生成的基本功能。它包括了`JsonParser`和`JsonGenerator`接口,分别用于读取和写入JSON数据。此外,它还提供了`JsonNode`抽象类,用于表示JSON结构,以及一...

    springmvc返回json用到的jar包

    - 如果你的返回类型是自定义Java对象,那么Jackson会尝试根据对象的属性生成JSON。为此,对象的属性需要有公共getter和setter方法,并且属性名称应与JSON键匹配。 6. **日期格式化**: - 默认情况下,Jackson可能...

    springMVC+json.zip_JSON_myeclipse_springmvc_数据传递

    3. **JSON数据格式**:JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。JSON格式通常用于前后端交互,因为它可以直接被JavaScript对象表示,减少了...

    SpringMVC-json2.8.7

    它包含了解析和生成JSON流的API,是其他Jackson模块(如databind和annotations)的依赖。 3. `jackson-annotations-2.8.7.jar`:这个模块提供了注解,用于增强Jackson库的功能。通过这些注解,开发者可以在Java类或...

    SpringMVC返回JSON数据相关Jar包

    2. `jackson-core.jar`: Jackson的基础库,包含JSON解析和生成的低级别API。 3. `jackson-annotations.jar`: 提供了Jackson注解,如`@JsonProperty`,`@JsonInclude`等,用于自定义序列化和反序列化的行为。 4. `...

    SpringMVC中后台转换json格式

    在前后端交互中,JSON(JavaScript Object Notation)是一种常用的数据交换格式,它轻量级且易于人阅读和编写,同时也方便机器解析和生成。然而,当我们在使用SpringMVC和Ajax进行数据交互时,可能会遇到406错误,这...

    Maven+springMVC+JSON实例

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在Web服务中,JSON常用于服务器向客户端发送数据。SpringMVC支持JSON数据的序列化和反序列化,通过`@...

    SpringMVC 使用JSON、XML视图

    为了实现JSON和XML视图,SpringMVC依赖于一些第三方库,包括: 1. json-lib:这是一个纯Java的JSON处理库,可以将Java对象转换为JSON字符串,反之亦然。 2. Jackson:Jackson是另一个流行的JSON库,它提供了高效的...

    springmvc加入json支持需要的jar包

    此外,它还提供了基本的JSON节点类型,如ObjectNode、ArrayNode等,以及JsonParser和JsonGenerator,这两个类分别用于解析JSON输入和生成JSON输出。 `jackson-mapper-asl-1.9.11.jar`是Jackson的 ObjectMapper 实现...

Global site tag (gtag.js) - Google Analytics