`

Spring之json

 
阅读更多

转自:http://exceptioneye.iteye.com/blog/1300672

一、准备工作

1、 下载依赖库jar包

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

   jackson-core-asl.jar

   jackson-mapper-as.jar

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

   

Java代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.         xmlns:mvc="http://www.springframework.org/schema/mvc"  
  5.         xmlns:context="http://www.springframework.org/schema/context"  
  6.         xmlns:util="http://www.springframework.org/schema/util"   
  7.         xsi:schemaLocation="  
  8.           http://www.springframework.org/schema/beans  
  9.           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
  10.           http://www.springframework.org/schema/mvc/spring-mvc  
  11.           http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd  
  12.           http://www.springframework.org/schema/context  
  13.           http://www.springframework.org/schema/context/spring-context-3.0.xsd  
  14.           http://www.springframework.org/schema/util   
  15.           http://www.springframework.org/schema/util/spring-util-2.0.xsd">  
  16.   
  17.     <!-- 自动扫描注解的Controller -->  
  18.     <context:component-scan base-package="com.wy.controller.annotation" />  
  19.       
  20.     <!-- 处理在类级别上的@RequestMapping注解-->  
  21.     <bean  
  22.         class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />  
  23.     <!-- 处理方法级别上的@RequestMapping注解-->  
  24.     <bean  
  25.         class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" >  
  26.         <property name="messageConverters">    
  27.             <util:list id="beanList">    
  28.                 <ref bean="mappingJacksonHttpMessageConverter"/>    
  29.             </util:list>    
  30.         </property>   
  31.     </bean>  
  32.        
  33.     <!-- 视图解析器策略 和 视图解析器 -->  
  34.     <!-- 对JSTL提供良好的支持 -->  
  35.     <bean  
  36.         class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
  37.         <!-- 默认的viewClass,可以不用配置  
  38.         <property name="viewClass" value="org.springframework.web.servlet.view.InternalResourceView" />  
  39.          -->  
  40.         <property name="prefix" value="/WEB-INF/page/" />  
  41.         <property name="suffix" value=".jsp" />  
  42.     </bean>  
  43.       
  44.     <!-- 处理JSON数据转换的 -->  
  45.     <bean id="mappingJacksonHttpMessageConverter"   
  46.         class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">   
  47.         <!-- 为了处理返回的JSON数据的编码,默认是ISO-88859-1的,这里把它设置为UTF-8,解决有乱码的情况 -->   
  48.         <property name="supportedMediaTypes">    
  49.             <list>    
  50.                   <value>text/html;charset=UTF-8</value>    
  51.             </list>    
  52.         </property>    
  53.     </bean>    
  54.       
  55.       
  56.     <!--   
  57.        ResourceBundleViewResolver通过basename所指定的ResourceBundle解析视图名。  
  58.                   对每个待解析的视图,ResourceBundle里的[视图名].class所对应的值就是实现该视图的类。  
  59.                   同样,[视图名].url所对应的值是该视图所对应的URL。  
  60.                   可以指定一个parent view,其它的视图都可以从parent view扩展。  
  61.                   用这种方法,可以声明一个默认的视图。  
  62.        
  63.     <bean id="messageSource"  
  64.         class="org.springframework.context.support.ResourceBundleMessageSource">  
  65.         <property name="basename" value="welcome" />  
  66.     </bean>  
  67.     -->  
  68.       
  69. </beans>  

 

 

 二、注解的Controller

 

 

Java代码  收藏代码
  1. package com.wy.controller.annotation;  
  2.   
  3. import javax.servlet.http.HttpServletRequest;  
  4. import javax.servlet.http.HttpSession;  
  5.   
  6. import org.apache.log4j.Logger;  
  7. import org.springframework.http.HttpEntity;  
  8. import org.springframework.http.HttpHeaders;  
  9. import org.springframework.http.HttpStatus;  
  10. import org.springframework.http.ResponseEntity;  
  11. import org.springframework.stereotype.Controller;  
  12. import org.springframework.ui.ModelMap;  
  13. import org.springframework.web.bind.ServletRequestBindingException;  
  14. import org.springframework.web.bind.ServletRequestUtils;  
  15. import org.springframework.web.bind.annotation.RequestBody;  
  16. import org.springframework.web.bind.annotation.RequestMapping;  
  17. import org.springframework.web.bind.annotation.RequestMethod;  
  18. import org.springframework.web.bind.annotation.ResponseBody;  
  19. import org.springframework.web.servlet.ModelAndView;  
  20.   
  21. import com.wy.pojo.User;  
  22.   
  23. /** 
  24.  * SpringMVC 注解 内置支持 
  25.  * @author Administrator 
  26.  * 
  27.  */  
  28. @Controller  
  29. @RequestMapping("/entryOrJsonController")  
  30. public class EntryOrJsonController {  
  31.   
  32.     private Logger log = Logger.getLogger(EntryOrJsonController.class);  
  33.       
  34.     /** 
  35.      * 输入为JSON格式的数据的方式  
  36.      * 1、@RequestBody 将httpRequest的body绑定到方法参数上 
  37.      * @param param 
  38.      * @return 
  39.      */  
  40.     @RequestMapping(value = "/annotationParam", method = RequestMethod.POST)  
  41.     public ModelAndView annotationParam(@RequestBody User user){  
  42.         ModelAndView mav = new ModelAndView();  
  43.         log.info("============"+user);  
  44.         mav.setViewName("welcome");  
  45.         return mav;  
  46.     }  
  47.       
  48.     /** 
  49.      * 输出为JSON格式的数据的方式  
  50.      * 1、@ResponseBody的作用是把返回值直接写到HTTP response body里 
  51.      * @param session 
  52.      * @return 
  53.      * @throws ServletRequestBindingException 
  54.      */  
  55.     @RequestMapping(value = "/commonReturnType" , method = RequestMethod.GET)  
  56.     @ResponseBody   
  57.     public ModelAndView commonReturnType(HttpSession session) throws ServletRequestBindingException{  
  58.         ModelAndView mav = new ModelAndView();  
  59.         session.setAttribute("userName""使用ResponseBody输出!");  
  60.         log.info("=================使用ResponseBody输出====================");  
  61.         ModelMap modelMap = new ModelMap();  
  62.         modelMap.put("mapKey""mapValue");  
  63.         modelMap.addAttribute("attributeKey""attributeValue");  
  64.           
  65.         mav.addObject("model", modelMap);  
  66.         mav.addObject("modelMap", modelMap);  
  67.         mav.setViewName("welcome");  
  68.         return mav;  
  69.     }  
  70.       
  71.     /** 
  72.      * 输出为JSON格式的数据的方式 
  73.      * 2、ResponseEntity<?> 
  74.      * @return 
  75.      */  
  76.     @RequestMapping(value = "/annotationReturnType" , method = RequestMethod.GET)  
  77.     public ResponseEntity<String> annotationReturnType(){  
  78.         log.info("=================使用ResponseEntity<?>输出====================");  
  79.         HttpHeaders httpHeaders = new HttpHeaders();  
  80.         ResponseEntity<String> responseEntity = new ResponseEntity<String>("Hello WY!", httpHeaders, HttpStatus.CREATED);  
  81.         return responseEntity;  
  82.     }  
  83.       
  84.     /** 
  85.      * 输入 和输出为JSON格式的数据的方式 
  86.      * 3、HttpEntity<?> ResponseEntity<?> 
  87.      * @param u 
  88.      * @return 
  89.      */  
  90.     @RequestMapping(value = "/annotationParamsReturn", method = RequestMethod.GET)   
  91.     @ResponseBody   
  92.     public ResponseEntity<String> annotationParamsReturn(HttpEntity<User> user){  
  93.         String temp = user.getBody().getUsername();  
  94.         ResponseEntity<String> responseResult = new ResponseEntity<String>(temp, HttpStatus.OK);     
  95.         return responseResult;     
  96.     }    
  97.       
  98.     /** 
  99.      *  
  100.      * @param request 
  101.      * @param session 
  102.      * @return 
  103.      * @throws ServletRequestBindingException 
  104.      */  
  105.     @RequestMapping(value = "/login" , method = RequestMethod.GET)  
  106.     public ModelAndView login(HttpServletRequest request, HttpSession session) throws ServletRequestBindingException{  
  107.         ModelAndView mav = new ModelAndView();  
  108.         String userName = request.getParameter("userName");  
  109.         String password = ServletRequestUtils.getStringParameter(request, "password");  
  110.         log.info("============================\r\n接收到的参数: "+userName+" "+password);  
  111.         session.setAttribute("userName", userName);  
  112.         mav.setViewName("welcome");  
  113.         return mav;  
  114.     }  
  115. }  

 

分享到:
评论

相关推荐

    spring-json

    "Spring-JSON"是关于Spring框架与JSON处理的相关知识点,主要涉及如何在Spring应用程序中集成和使用JSON数据。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于前后端交互。Spring框架提供...

    spring data jpa + spring + json demo

    【标题】"spring data jpa + spring + json demo"揭示了这个项目是关于使用Spring Data JPA、Spring框架以及JSON处理的一个示例应用。Spring Data JPA是Spring框架的一个模块,它简化了JPA(Java Persistence API)...

    spring配置JSON拦截器VIEW

    标题中的“spring配置JSON拦截器VIEW”指的是在Spring框架中设置JSON数据的处理方式,特别是通过拦截器(Interceptor)来优化视图层(View)的响应。在Web开发中,拦截器是一种常用的机制,用于在请求被实际处理之前...

    spring-json 工程依赖

    标题“spring-json 工程依赖”指的是在使用Spring框架与JSON相关的功能时,需要在项目中引入的一系列依赖库。Spring框架是一个广泛使用的Java应用程序开发框架,它为创建企业级应用提供了全面支持,包括模块化的服务...

    spring mvc(整合了json)

    2. **配置 Spring MVC**:在 Spring MVC 的配置文件中,我们需要添加 `Jackson` 的转换器,使得 Spring MVC 能够解析和生成 JSON 数据。例如,在使用 XML 配置时,可以添加以下配置: ```xml &lt;bean class="org....

    Spring支持自动转json的依赖

    在Spring框架中,为了实现将Java对象自动转换为JSON格式的数据,我们需要引入特定的依赖库。这个过程通常涉及到Jackson或Gson这两个流行的JSON处理库。本文将深入探讨Spring如何配合这些库来实现自动JSON转换,并给...

    Spring返回json数据格式

    Spring返回json数据格式

    spring mvc json&&jackson jquery js

    Spring MVC还提供了`@JsonView`注解来控制JSON响应中的数据粒度,以及`@JsonProperty`和`@JsonIgnore`来控制哪些字段应包含在JSON中。 **jQuery和JavaScript** jQuery是一个流行的JavaScript库,简化了DOM操作、...

    Spring处理json,客户端处理json

    在这个场景中,我们关注的是Spring如何处理JSON数据以及客户端如何处理JSON。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于前后端交互,因为它的结构清晰且易于阅读和编写。 1. **...

    spring json jar包

    spring json ,返回数据,需要两个jar包

    spring-json项目

    【Spring-JSON项目】是一个基于Eclipse开发的项目,它主要关注的是如何在Spring框架中有效地集成和使用JSON(JavaScript Object Notation)进行数据交换。这个项目的核心目标是利用Spring MVC来构建RESTful Web服务...

    Spring3 MVC Ajax with JSON

    **Spring3 MVC与Ajax结合使用JSON** 在现代Web开发中,Spring框架的MVC模块与Ajax和JSON的集成是创建动态、响应式用户界面的关键技术。这个"Spring3 MVC Ajax with JSON"项目提供了一个Eclipse工程,包含了实现这一...

    struts2_spring_json.rar_liferay struts2 json_portlet json_spring

    在标题和描述中提到的"struts2_spring_json.rar"是一个关于如何在Liferay中利用Struts2和Spring框架处理JSON数据的示例应用。 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于前后端交互,...

    spring_json.jar

    《深入解析spring_json.jar——Java开发中的核心组件》 在Java开发领域,Spring、Hibernate、JSON和HTTP是不可或缺的关键技术。这些技术各自扮演着重要的角色,共同构建了现代企业级应用的基础架构。当我们谈论...

    spring mvc json学习

    在本文中,我们将深入探讨“Spring MVC JSON学习”这一主题,重点关注如何在Spring MVC应用中处理JSON数据。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其简洁性和易读性而被广泛应用。 ...

    Struts2+Spring3.0+MyBatis3.0平台搭建spring+json+gson+mysql,经典版本spring3.0+,完整架包

    描述中提到的"spring+json+gson+mysql",表明这个平台不仅包含了上述的三大框架,还涉及到了JSON序列化和MySQL数据库。JSON是一种轻量级的数据交换格式,广泛用于前后端交互。Gson是Google提供的一个库,用于在Java...

    CXF结合Spring发布Json格式WebService示例

    本实例工程使用Apache CXF组件快速开发WebService。基于Spring框架,使用了Maven项目,但由于时间原因,只使用了Maven Project的框架,还是使用lib文件夹存放所需的cxf库,传入传出对象支持Json格式。

    springmvc,mybaitis json jar包

    springmvc,mybaitis json jar包Spring各jar包详解spring.jar 是包含有完整发布模块的单个jar 包。但是不包括mock.jar,aspects.jar, spring-portlet.jar, and spring-hibernate2.jar。 spring-src.zip就是所有的源...

    spring_json整合的代码

    在现代Web开发中,Spring框架与JSON的整合是非常常见和重要的,特别是在处理前后端数据交互时。本文将详细介绍如何在Spring框架中整合JSON,以便于初学者理解和应用。 首先,要整合Spring和JSON,我们需要引入相关...

    Spring mvc Json处理实现流程代码实例

    本文将深入探讨Spring MVC中JSON处理的实现流程,包括接收JSON参数和返回JSON响应。 1. **接收JSON参数** 当前端(如浏览器)向服务器发送JSON数据时,Spring MVC 提供了多种接收方式。一种是通过`...

Global site tag (gtag.js) - Google Analytics