• 数据请求对象封装


    后台中,经常需要有带分页的条件查询,需要将当前页,每页条数,以及其它条件传到Controller进行查询,这时我们可以写一个公共的类来处理数据请求。

    通常在前台将所需要的数据放在对象数组中,然后将对象数组变成字符串传到Controller,然后Controller进行处理

    数据请求对象封装类:

    package com.***.cms.constants;
    
    import org.apache.commons.lang3.StringUtils;
    
    import com.alibaba.fastjson.JSONArray;
    import com.alibaba.fastjson.JSONObject;
    
    /**
     * jquery.datatable 数据请求对象封装
     * 2017年2月6日 下午1:45:23
     */
    public class DataTableRequest {
        
        /** 需要处理的对象数组 */
        private static JSONArray dataArray;
        
        private int iDisplayStart = 0; // 起始索引
        private int iDisplayLength = 0; // 每页显示的行数
        
        public DataTableRequest() {
    
        }
        
        /**
         * 初始化获取请求参数
         * @param aoData
         */
        public DataTableRequest(String aoData) {
            dataArray = JSONArray.parseArray(aoData);
            for (Object object : dataArray) {
                JSONObject obj = (JSONObject) object;
                String name = obj.getString("name");
    
                if (StringUtils.equals(name,"iDisplayStart"))
                    this.iDisplayStart = obj.getIntValue("value");
    
                if (StringUtils.equals(name,"iDisplayLength"))
                    this.iDisplayLength = obj.getIntValue("value");
            }
        }
    
        /**
         * 根据参数名称获取对应的值
         * @param searchName
         * @return
         */
        public String  getSearchValue(String searchName){
            for (Object object : dataArray) {
                JSONObject obj = (JSONObject) object;
                String name = obj.getString("name");
                if (StringUtils.equals(name,searchName))
                    return  obj.getString("value");
            }
            return null;
        }
        
    
        
        public int getiDisplayStart() {
            return iDisplayStart;
        }
    
        public void setiDisplayStart(int iDisplayStart) {
            this.iDisplayStart = iDisplayStart;
        }
    
        public int getiDisplayLength() {
            return iDisplayLength;
        }
    
        public void setiDisplayLength(int iDisplayLength) {
            this.iDisplayLength = iDisplayLength;
        }
        
    }

    例,前台:

    <script type="text/javascript">
            $("input").click(function(){
                var data = [
                            {"name":"address","value":"重庆"},
                            {"name":"age","value":"24"},
                            {"name":"name","value":"张三"}
                           ]
                $.ajax({
                    url:"/merchants/testResult",
                    data:{result:JSON.stringify(data)}
                });
            })
        </script>

    Controller:

    @RequestMapping("/testResult")
        public void testResult(String result){
            DataTableRequest d = new DataTableRequest(result) ;
            String name = d.getSearchValue("name") ;
            if(StringUtils.isNotEmpty(name)){
                
            }
        }
  • 相关阅读:
    使用Parallel计算目录中的文件字节长度
    任务工厂
    启动新任务和子任务
    服务器端小程序
    Java核心技术II读书笔记(三)
    Java核心技术II读书笔记(二)
    Java核心技术II读书笔记(一)
    多线程-线程的中断
    http协议详解
    java UncaughtExceptionHandler 处理线程意外中止
  • 原文地址:https://www.cnblogs.com/-scl/p/7389376.html
Copyright © 2020-2023  润新知