zoukankan      html  css  js  c++  java
  • SpringMVC从Control中响应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相关的包。

  • 相关阅读:
    【转】Linux 用cp和rsync同步文件时跳过指定目录
    解决svn错误:postcommit hook failed (exit code 1) with output
    Linux下如何使cp命令不提示覆盖文件
    Linux tar压缩时排除某个目录或文件的参数
    ecshop中404错误页面 .
    Linux如何查看当前目录下文件的个数
    Meta Property=og标签在SEO中的应用
    mysql mysqldump只导出表结构或只导出数据的实现方法
    slaveskiperrors( 转)
    自定义404错误页面返回状态码分析
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/5090988.html
Copyright © 2011-2022 走看看