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;
        }
  • 相关阅读:
    Douglas-Peucker 轨迹压缩算法
    Marching squares 算法 获取轮廓(contour tracing)
    创建Mesh->格子地图转NavMesh->可破坏墙壁
    StretchedBillboard 实现
    程序员的微创业
    买云服务器有推荐吗?国内知道有腾讯云、阿里云...等等,不知道该选哪个好了,另外优惠吗?
    我的阿里云5年
    2021阿里云、腾讯云、华为云、滴滴云评测比较
    终于找到可以一文多发的平台了!
    2019年最新阿里云主机优惠购买指南
  • 原文地址:https://www.cnblogs.com/luxh/p/2960335.html
Copyright © 2011-2022 走看看