zoukankan      html  css  js  c++  java
  • 【Spring学习笔记-MVC-3】SpringMVC返回Json数据-方式1

    《Spring学习笔记-MVC》系列文章,讲解返回json数据的文章共有3篇,分别为:
    1. 【Spring学习笔记-MVC-3】SpringMVC返回Json数据-方式1:http://www.cnblogs.com/ssslinppp/p/4528892.html 
    2. 【Spring学习笔记-MVC-4】返回Json数据-方式2:http://www.cnblogs.com/ssslinppp/p/4530002.html 
    3. 【Spring学习笔记-MVC-3.1】SpringMVC返回Json数据-方式1-扩展:http://www.cnblogs.com/ssslinppp/p/4675495.html 
    文章的内容主要如下:
    1. 方式1:讲解如果返回单个对象的json;==>使用@ResponseBody来实现;注解方式
    2. 方式2:讲解如果返回多个对象的json;==>使用MappingJacksonJsonView来实现;xml配置方式
    3. 方式1-扩展:讲解如果返回多个对象的json;==>使用@ResponseBody来实现;注解方式
    个人认为,使用@ResponseBody方式来实现json数据的返回比较方便,推荐使用。



    摘要


    使用Spring MVC,实现json数据的返回。
    主要步骤:
    1. 额外添加2个jar包;
    2. 使用 @ResponseBody声明返回值;
    3. 配置<mvc:annotation-driven />;==>需要引入:xmlns:mvc="http://www.springframework.org/schema/mvc";

    @ResponseBody:

    作用: 
    该注解用于将Controller方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后(如:json格式),写入到Response对象的body数据区。 
    使用时机:
    返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;

    <mvc:annotation-driven /> :

    <mvc:annotation-driven /> 会自动注册
    1. DefaultAnnotationHandlerMapping
    2. AnnotationMethodHandlerAdapter 
    两个bean,这两个bean是spring MVC为@Controllers分发请求所必须的。并提供了数据绑定支持,@NumberFormatannotation支持,@DateTimeFormat支持,@Valid支持,读写XML的支持(JAXB),读写JSON的支持(Jackson)。


    需要的jar包


    上面两个都是必须的。




    项目结构




    程序代码


    Shop.java
    1. package com.ll.model;
    2. public class Shop {
    3. String name;
    4. String staffName[];
    5. public String getName() {
    6. return name;
    7. }
    8. public void setName(String name) {
    9. this.name = name;
    10. }
    11. public String[] getStaffName() {
    12. return staffName;
    13. }
    14. public void setStaffName(String[] staffName) {
    15. this.staffName = staffName;
    16. }
    17. }

    JSONController.java

    1. package com.ll.controller;
    2. import org.springframework.stereotype.Controller;
    3. import org.springframework.web.bind.annotation.PathVariable;
    4. import org.springframework.web.bind.annotation.RequestMapping;
    5. import org.springframework.web.bind.annotation.RequestMethod;
    6. import org.springframework.web.bind.annotation.ResponseBody;
    7. import com.ll.model.Shop;
    8. @Controller
    9. @RequestMapping("/kfc/brands")
    10. public class JSONController {
    11. @RequestMapping(value="{name}", method = RequestMethod.GET)
    12. public @ResponseBody Shop getShopInJSON(@PathVariable String name) {
    13. System.out.println("-----请求json数据--------");
    14. Shop shop = new Shop();
    15. shop.setName(name);
    16. shop.setStaffName(new String[]{"mkyong1", "mkyong2"});
    17. return shop;
    18. }
    19. }

    添加: @ResponseBody作为返回值。


    web.xml

    1. <web-app id="WebApp_ID" version="2.4"
    2. xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    3. xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
    4. http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    5. <display-name>Spring Web MVC Application</display-name>
    6. <context-param>
    7. <param-name>contextConfigLocation</param-name>
    8. <param-value>classpath:applicationContext.xml</param-value>
    9. </context-param>
    10. <listener>
    11. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    12. </listener>
    13. <servlet>
    14. <servlet-name>mvc-dispatcher</servlet-name>
    15. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    16. <load-on-startup>1</load-on-startup>
    17. </servlet>
    18. <servlet-mapping>
    19. <servlet-name>mvc-dispatcher</servlet-name>
    20. <url-pattern>/rest/*</url-pattern>
    21. </servlet-mapping>
    22. </web-app>



    mvc-dispatcher-servlet.xml

    1. <beans xmlns="http://www.springframework.org/schema/beans"
    2. xmlns:context="http://www.springframework.org/schema/context"
    3. xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xsi:schemaLocation="
    5. http://www.springframework.org/schema/beans
    6. http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    7. http://www.springframework.org/schema/context
    8. http://www.springframework.org/schema/context/spring-context-3.0.xsd
    9. http://www.springframework.org/schema/mvc
    10. http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
    11. <context:component-scan base-package="com.ll.controller" />
    12. <mvc:annotation-driven />
    13. </beans>

    开启:<mvc:annotation-driven />



    applicationContext.xml
    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" xmlns:p="http://www.springframework.org/schema/p"
    4. xmlns:context="http://www.springframework.org/schema/context"
    5. xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
    6. xsi:schemaLocation="http://www.springframework.org/schema/beans
    7. http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    8. http://www.springframework.org/schema/context
    9. http://www.springframework.org/schema/context/spring-context-3.0.xsd
    10. http://www.springframework.org/schema/tx
    11. http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
    12. http://www.springframework.org/schema/aop
    13. http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
    14. <!-- 扫描类包,将标注Spring注解的类自动转化Bean,同时完成Bean的注入 -->
    15. <context:component-scan base-package="com.ll.model"/>
    16. </beans>


    运行



    参考网站

    http://www.mkyong.com/spring-mvc/spring-3-mvc-and-json-example/ 










    附件列表

    • 相关阅读:
      LeetCode 453 Minimum Moves to Equal Array Elements
      LeetCode 112 Path Sum
      LeetCode 437 Path Sum III
      LeetCode 263 Ugly Number
      Solutions and Summay for Linked List Naive and Easy Questions
      AWS–Sysops notes
      Linked List
      All About Linked List
      datatable fix error–Invalid JSON response
      [转]反编译c#的相关问题
    • 原文地址:https://www.cnblogs.com/ssslinppp/p/4528892.html
    Copyright © 2011-2022 走看看