Spring框架学习(5.4)SpringMVC常用注解-SpringMVC返回JSon数据

前言

记录学习历程,上接5.3
JSON :JavaScript 对象表示法(JavaScript Object Notation) 是一种存储数据的方式

JSON

JSON对象由 名称/值对组成,名称和值之间用冒号:隔开
名称必须用双引号" 包含起来
值可以是任意javascript数据类型,字符串,布尔,数字 ,数组甚至是对象
不同的名称/值对之间用 逗号 , 隔开
{“loginName”:“zhangsan”,“loginPwd”:“123456”}

@ResponseBody注解

@ResponseBody注解将返回类型转变为JSON格式
例:
(1)不想显式创建Bean实例,可以在springmvc.xml中添加
< mvc:annotation-driven />,默认会帮我们注册默认处理请求,参数和返回值的类
当配置了mvc:annotation-driven/后,Spring就知道了我们启用注解驱动。然后Spring通过context:component-scan/标签的配置,会自动为我们将扫描到的@Component,@Controller,@Service,@Repository等注解标记的组件注册到工厂中,来处理我们的请求

<mvc:annotation-driven/>

springmvc.xml中添加< mvc:default-servlet-handler/>

<mvc:default-servlet-handler/>

配置< mvc:default-servlet-handler />后,会在Spring MVC上下文中定义一个org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler,它会像一个检查员,对进入DispatcherServlet的URL进行筛查,如果发现是静态资源的请求,就将该请求转由Web应用服务器默认的Servlet处理,如果不是静态资源的请求,才由DispatcherServlet继续处理
具体解释
(2)下载包jackson-annotations、jackson-core、jackson-databind
将3个包导入项目
WEB-INF新建js包,将jQuery.min.js导入
(3)在HelloController类添加方法returnJson,返回JSON格式数据

	@ResponseBody
    @RequestMapping("/returnJson")
    public Collection<Users> returnJson(){
        Map<Integer,Users> map=new HashMap<>();
        map.put(1,new Users("zhangsan","123456",new Address("Jiangxi","nanchang")));
        map.put(2,new Users("lisi","111111",new Address("jiangxi","shangrao")));
        return  map.values();
    }

return返回的类型为Collection< Users>,但标注@ResponseBody注解就转变为JSON格式
(4)index.jsp添加方法

  <a href="javascript:void(0)" id="returnJson" onclick="getUsersJson()">TestJson</a>
    
  <script>
    function getUsersJson() {
        var url="springmvc/returnJson";
        var args={};
        $.post(url,args,function (data) {
            
        })
        
    }
  </script>  
  <script type="text/javascript" src="/js/jquery.min.js"></script>

在getUsersJson函数中,使用$.post将请求提交到控制器类HelloController中的returnJson方法,参数data就是returnJson方法返回的JSON格式的数据
(等学的大概再回头补充)

发布了49 篇原创文章 · 获赞 0 · 访问量 1257

猜你喜欢

转载自blog.csdn.net/key_768/article/details/103968896