zoukankan      html  css  js  c++  java
  • SpringMVC从Controller中响应json数据

      在页面上异步获取Controller中响应的json数据。

      页面代码:

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>User List</title>
    
    <script type="text/javascript" src="${pageContext.request.contextPath}/resource/script/jquery-1.9.1.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function(){
            $("#button_getUser").click(function(){
                //异步请求json数据
                $.ajax({
                    type:"POST",
                    url:"${pageContext.request.contextPath}/user/getUserList",
                    success:function(data){
                        //迭代返回的json数据
                        $.each(data,function(i,user){
                            $("#results").append(user.userName+"---"+user.password+"<br>");
                        });
                    },
                    error:function(e) {
                        alert("出错:"+e);
                    }
                });
            });
        });
    </script>
    
    </head>
    <body>
        <input type="button" id="button_getUser" value="获取用户列表"><br>
        用户信息:<br>
        <div id="results">
        
        </div>
    </body>
    </html>

      Controller中的代码

    @RequestMapping("/getUserList")
        public String getUserList(HttpServletResponse response) {
            response.setCharacterEncoding("UTF-8");
            response.setContentType("application/json");
            
            List<User> userList = getUsers();
            Gson gson = new Gson();
            String json = gson.toJson(userList);
            System.out.println("json---"+json);
            PrintWriter out = null;
            try {
                out = response.getWriter();
                out.write(json);
                out.flush();
            }catch(Exception e) {
                e.printStackTrace();
            }finally {
                if(out != null) {
                    out.close();
                }
            }
            
            return "/user/userList";
        }
        
        private List<User> getUsers() {
            List<User> users = new ArrayList<User>();
            
            User user1 = new User();
            user1.setUserName("李坏");
            user1.setPassword("LiHuai");
            
            User user2 = new User();
            user2.setUserName("阿飞");
            user2.setPassword("aFei");
            
            User user3 = new User();
            user3.setUserName("陆小凤");
            user3.setPassword("LuXiaoFeng");
            
            users.add(user1);
            users.add(user2);
            users.add(user3);
            
            return users;
        }

      结果如下:

      


      或者使用@ResponseBody,需要用到jackson相关的包。

      页面:

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>User List</title>
    
    <script type="text/javascript" src="${pageContext.request.contextPath}/resource/script/jquery-1.9.1.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function(){
            $("#button_getUser").click(function(){
                //异步请求json数据
                $.ajax({
                    type:"POST",
                    url:"${pageContext.request.contextPath}/user/getUserList",
                    success:function(data){
                        //迭代返回的json数据
                        $.each(data.users,function(i,user){
                            $("#results").append(user.userName+"---"+user.password+"<br>");
                        });
                    },
                    error:function(e) {
                        alert("出错:"+e);
                    }
                });
            });
        });
    </script>
    
    </head>
    <body>
        <input type="button" id="button_getUser" value="获取用户列表"><br>
        用户信息:<br>
        <div id="results">
        
        </div>
    </body>
    </html>

      Controller:

    @RequestMapping("/getUserList")
        @ResponseBody
        public Map<String,Object> getUserList() {
            Map<String,Object> resultMap = new HashMap<String,Object>();
            List<User> userList = getUsers();
            resultMap.put("users", userList);
            return resultMap;
        }
  • 相关阅读:
    BZOJ1057:[ZJOI2007]棋盘制作——题解
    洛谷4147:玉蟾宫——题解
    洛谷1578:[WC2002]奶牛浴场——题解
    BZOJ1926:[SDOI2010]粟粟的书架——题解
    BZOJ3123:[SDOI2013]森林——题解
    BZOJ1834:[ZJOI2010]网络扩容——题解
    BZOJ2668:[CQOI2012]交换棋子——题解
    BZOJ1070:[SCOI2007]修车——题解
    BZOJ1877:[SDOI2009]晨跑——题解
    在阿里,我们如何管理测试环境
  • 原文地址:https://www.cnblogs.com/luxh/p/2960335.html
Copyright © 2011-2022 走看看