• EasyUI学习-----表格DataGrid获取数据的方式


       第一种方式:直接返回JSON数据

    package com.easyuijson.util;
    
    import java.text.SimpleDateFormat;
    import net.sf.json.JsonConfig;
    import net.sf.json.processors.JsonValueProcessor;
    
    public class DateJsonValueProcessor implements JsonValueProcessor{
    
        private String format;  
        
        public DateJsonValueProcessor(String format){  
            this.format = format;  
        }  
        
        public Object processArrayValue(Object value, JsonConfig jsonConfig) {
            return null;
        }
    
        public Object processObjectValue(String key, Object value, JsonConfig jsonConfig) {
            if(value == null)  
            {  
                return "";  
            }  
            if(value instanceof java.sql.Timestamp)  
            {  
                String str = new SimpleDateFormat(format).format((java.sql.Timestamp)value);  
                return str;  
            }  
            if (value instanceof java.util.Date)  
            {  
                String str = new SimpleDateFormat(format).format((java.util.Date) value);  
                return str;  
            }  
              
            return value.toString(); 
        }
    
    }
    package com.easyuijson.servlet;
    
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.json.JSONObject;
    
    import com.easyuijson.model.Student;
    import com.easyuijson.util.DateJsonValueProcessor;
    import com.easyuijson.util.ResponseUtil;
    
    import net.sf.json.JSONArray;
    import net.sf.json.JsonConfig;
    
    public class DatagridData extends HttpServlet {
        private static final long serialVersionUID = 1L;
        private static List<Student> studentList=null;
        static {
            studentList = new ArrayList<Student>();
            Student student1 = new Student(1001, "Lucy", "男", 23, "Lucy@126.com", "84562548", "三个地方规划的恢复规划法规部分");
            Student student2 = new Student(1002, "Lucy", "男", 23, "Lucy@126.com", "84562548", "三个地方规划的恢复规划法规部分");
            Student student3 = new Student(1003, "Lucy", "男", 23, "Lucy@126.com", "84562548", "三个地方规划的恢复规划法规部分");
            Student student4 = new Student(1004, "Lucy", "男", 23, "Lucy@126.com", "84562548", "三个地方规划的恢复规划法规部分");
            Student student5 = new Student(1005, "Lucy", "男", 23, "Lucy@126.com", "84562548", "三个地方规划的恢复规划法规部分");
            Student student6 = new Student(1006, "Lucy", "男", 23, "Lucy@126.com", "84562548", "三个地方规划的恢复规划法规部分");
            studentList.add(student1);
            studentList.add(student2);
            studentList.add(student3);
            studentList.add(student4);
            studentList.add(student5);
            studentList.add(student6);
        }
    
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp){
            try {
                System.out.println("跳转成功!");
                int total = studentList.size();
                JSONObject result = new JSONObject();
                JsonConfig jsonConfig = new JsonConfig();
                jsonConfig.registerJsonValueProcessor(java.util.Date.class,
                        new DateJsonValueProcessor("yyyy-MM-dd"));
                JSONArray jsonArray = JSONArray.fromObject(studentList, jsonConfig);
                result.put("rows", jsonArray);
                result.put("total", total);
                ResponseUtil.write(resp, result);
            } catch (Exception ex) {
                ex.printStackTrace();
            }        
        }
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            doGet(req, resp);
        }
    
    }
    package com.easyuijson.util;
    
    import java.io.PrintWriter;
    import javax.servlet.http.HttpServletResponse;
    public class ResponseUtil {
    
        public static void write(HttpServletResponse response,Object o)throws Exception{
            response.setContentType("text/html;charset=utf-8");
            PrintWriter out=response.getWriter();
            out.println(o.toString());
            out.flush();
            out.close();
        }
    }

       1)使用Ajax请求数据

    <body>
        <table id="dg" class="easyui-datagrid" title="基本数据表格"
            style=" 700px; height: 250px"
            data-options="singleSelect:true,collapsible:true">
            <thead data-options="frozen:true">
                <tr>
                    <th data-options="field:'stuId',100">学生ID</th>
                    <th data-options="field:'stuName',100">学生姓名</th>
                </tr>
            </thead>
            <thead>
                <tr>
                    <th data-options="field:'stuSex',100">学生性别</th>
                    <th data-options="field:'stuAge',100">学生年龄</th>
                    <th data-options="field:'stuEmail',100,align:'center'">学生邮箱</th>
                    <th data-options="field:'stuQQ',100,align:'right'">学生QQ</th>
                    <th data-options="field:'stuAddress',200,align:'center'">学生地址</th>
                </tr>
            </thead>
        </table>
    </body>
    <script type="text/javascript">
        $(function() {
            //动态加载标题和数据
            $.ajax({
                url : "${pageContext.request.contextPath}/datagridData.do",
                type : "post",
                dataType : "json",
                success : function(data) {
                    $("#dg").datagrid("loadData", data.rows); //动态取数据
                }
            });
        });
    </script>

       2)使用表格Url属性请求数据

    <table class="easyui-datagrid" title="基本数据表格"
            style=" 700px; height: 250px"
            data-options="singleSelect:true,collapsible:true,url:'${pageContext.request.contextPath}/datagridData.do'">
            <thead data-options="frozen:true">
                <tr>
                    <th data-options="field:'stuId',100">学生ID</th>
                    <th data-options="field:'stuName',100">学生姓名</th>
                </tr>
            </thead>
            <thead>
                <tr>
                    <th data-options="field:'stuSex',100">学生性别</th>
                    <th data-options="field:'stuAge',100">学生年龄</th>
                    <th data-options="field:'stuEmail',100,align:'center'">学生邮箱</th>
                    <th data-options="field:'stuQQ',100,align:'right'">学生QQ</th>
                    <th data-options="field:'stuAddress',200,align:'center'">学生地址</th>
                </tr>
            </thead>        
        </table>

       3)js创建表格的时候使用表格Url属性请求数据 

    <body>
        <table id="studentList"></table>
    </body>
    <script type="text/javascript">
        $('#studentList').datagrid({
            title : '基本数据表格',
            width : 700,
            height : 250,
            url : '${pageContext.request.contextPath}/datagridData.do',
            frozenColumns : [ [ {
                field : 'stuId',
                title : '学生ID',
                width : 100
            }, {
                field : 'stuName',
                title : '学生姓名',
                width : 100
            } ] ],
            columns : [ [ {
                field : 'stuSex',
                title : '学生性别',
                width : 100
            }, {
                field : 'stuAge',
                title : '学生年龄',
                width : 100
            }, {
                field : 'stuEmail',
                title : '学生邮箱',
                width : 100
            }, {
                field : 'stuQQ',
                title : '学生QQ',
                width : 100
            }, {
                field : 'stuAddress',
                title : '学生地址',
                width : 200,
                align : 'center'
            } ] ]
    
        });
    </script>

       第二种方式:通过JSTL填充表格

       1)前端页面

    <table class="easyui-datagrid" title="基本数据表格"
            style=" 700px; height: 250px"
            data-options="singleSelect:true,collapsible:true,url:'${pageContext.request.contextPath}/datagridData.do'">
            <thead data-options="frozen:true">
                <tr>
                    <th data-options="field:'stuId',100">学生ID</th>
                    <th data-options="field:'stuName',100">学生姓名</th>
                </tr>
            </thead>
            <thead>
                <tr>
                    <th data-options="field:'stuSex',100">学生性别</th>
                    <th data-options="field:'stuAge',100">学生年龄</th>
                    <th data-options="field:'stuEmail',100,align:'center'">学生邮箱</th>
                    <th data-options="field:'stuQQ',100,align:'right'">学生QQ</th>
                    <th data-options="field:'stuAddress',200,align:'center'">学生地址</th>
                </tr>
            </thead>
            <tbody>
                <c:forEach var="student" items="${studentList}">
                    <tr>
                        <td>${student.stuId}</td>
                        <td>${student.stuName}</td>
                        <td>${student.stuSex}</td>
                        <td>${student.stuAge}</td>
                        <td>${student.stuEmail}</td>
                        <td>${student.stuQQ}</td>
                        <td>${student.stuAddress}</td>
                    </tr>
                </c:forEach>
            </tbody>
        </table>

       2)后台代码,使用servlet处理数据

    package com.easyuijson.servlet;
    
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    import com.easyuijson.model.Student;
    
    public class DatagridData extends HttpServlet {
        private static final long serialVersionUID = 1L;
        private static List<Student> studentList=null;
        static {
            studentList = new ArrayList<Student>();
            Student student1 = new Student(1001, "Lucy", "男", 23, "Lucy@126.com", "84562548", "三个地方规划的恢复规划法规部分");
            Student student2 = new Student(1002, "Lucy", "男", 23, "Lucy@126.com", "84562548", "三个地方规划的恢复规划法规部分");
            Student student3 = new Student(1003, "Lucy", "男", 23, "Lucy@126.com", "84562548", "三个地方规划的恢复规划法规部分");
            Student student4 = new Student(1004, "Lucy", "男", 23, "Lucy@126.com", "84562548", "三个地方规划的恢复规划法规部分");
            Student student5 = new Student(1005, "Lucy", "男", 23, "Lucy@126.com", "84562548", "三个地方规划的恢复规划法规部分");
            Student student6 = new Student(1006, "Lucy", "男", 23, "Lucy@126.com", "84562548", "三个地方规划的恢复规划法规部分");
            studentList.add(student1);
            studentList.add(student2);
            studentList.add(student3);
            studentList.add(student4);
            studentList.add(student5);
            studentList.add(student6);
        }
    
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            System.out.println("跳转成功!");
            HttpSession httpSession= req.getSession();
            httpSession.setAttribute("studentList",studentList);for(Student stu:studentList) {
                System.out.println(stu);
            }
        }
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            doGet(req, resp);
        }
    
    }
  • 相关阅读:
    时间复杂度计算
    SQL Server2012编程入门经典(第四版) 读书笔记
    一些编程试题
    Qt 对话框显示控制按钮
    vc++创建文件目录
    配置ubuntu虚拟机备忘
    Qt QThread 多线程使用
    Qt 程序等待多长时间执行Sleep
    Qt 数字和字符处理总结
    c++ 文件utf-8格式
  • 原文地址:https://www.cnblogs.com/fengfuwanliu/p/10074886.html
Copyright © 2020-2023  润新知