springmvc实现多字段查询

问题场景

在进行web开发时,需求方提出多字段查询的要求。

解决方式

一般的页面查询只给了一个输入框接收查找值,在后端通过like方式实现,多字段查询即是对SQL语句的扩展而已(多几个if判断)。

具体解决思路:
a 在要添加的页面(父页面)增加一个高级查询按钮;
b 通过这个按钮触发多字段页面(子页面,表单接收多字段的值);
c 在子页面提交父页面的表单。

code

子页面的取到多字段的值

<script type="text/javascript">
        var dg;
        $(document).ready(function(){
            dg = frameElement.lhgDG;
            dg.addBtn('ok','查询',function(){
                var inMutations = new Array();
                var myform = document.getElementsByTagName('form')[0];
                var xinp = myform.getElementsByTagName('input');//获取表单中所有输入框
                for (var i = 1; i < xinp.length; i++) {//循环 从1开始是去掉隐藏的id
                    inMutations[i - 1] = xinp[i].value;//将每个输入框中的值付给数组对应项
                }

//调用父页面的函数      
        parent.submitForm(inMutations);
                dg.cancel();
            });
        });
    script>

父页面的函数

<script type="text/javascript">
    //提交高级查询
    function submitForm(inMutations){
        $("#individualMutationForm").attr("action", "${pageContext.request.contextPath}/individualMutation/listCopy.html?indivMutations="+JSON.stringify(inMutations));
        $("#individualMutationForm").submit();
    }
script>

controller里的函数

/**
     * 高级查询展示方法
     * @param indivMutations
     * @param session
     * @return
     */
    @RequestMapping(value="/listCopy")
    public String listCopy(@RequestParam String indivMutations, HttpSession session, Model model){
        JSONArray array = JSONArray.fromObject(indivMutations);
        IndividualMutation individualMutation = new IndividualMutation();
        //39为多字段的个数
        if (array.size() == 39) {
            individualMutation.setXXX((String) array.get(0));
            individualMutation.setXXX((String) array.get(1));
            individualMutation.setXXX((String) array.get(2));
            。。。。。。
            individualMutation.setXXX((String) array.get(38));
        }
        User user = (User)session.getAttribute(Const.SESSION_USER);
        String username = user.getUsername() == null ? "" : user.getUsername();
        Integer lookAll = 0;//为假
        if (IndivPdfUtils.isLookAll(username)) {
            lookAll = 1;//为真
        }
        List individualMutationList = individualMutationService.getIndividualMutation(individualMutation);
        model.addAttribute("individualMutationList", individualMutationList);
        model.addAttribute("individualMutation", individualMutation);
        model.addAttribute("lookAll", lookAll);
        //展示的视图也要单独copy一份
        return "individualMutation/individualMutationCopy"; 
    }

多字段前端效果

springmvc实现多字段查询_第1张图片

你可能感兴趣的:(springmvc)