您的位置:首页 > 其它

工作时遇到的一些问题解决

2017-08-02 10:35 309 查看
                      <select name="vendorMaintenanceId" class="form-control">
                                    [#list vendormaintenances as vendorMaintenance]
                                        <option value="${vendorMaintenance.id}">${vendorMaintenance.manufacturer}</option>
                                    [/#list]
                                </select>
后端传递的下拉列表的选中结果,前端将其选中 #后面为select的id
$("#raise option").each(function () {
                    var txt = $(this).text();
                    if (data.brand == txt) {
                        $(this).attr("selected", true);
                    }
                });

ajax级联下拉:当点击第一个下拉列表时触发的事件
       $("#brandmaintenanceId").change(function(){
            var id=$(this).children('option:selected').val();
            $.ajax({
                url: "${base}/admin/vehiclemanagment/get_vendor.jhtml",
                type: "get",
                dataType: "json",
                cache: false,
                async: false,
                data:{"id":id},
                success: function(data) {
                    $("#vendorMaintenceId").find("option").remove();
                    $("#vehicleMaintenceId").find("option").remove();
                    $("#vendorMaintenceId").append("<option>请选择</option>");
                    $("#vehicleMaintenceId").append("<option>请选择</option>");
                    var result=data.vendorList;
                   for(var i=0;i<result.length;i++){
                       $("#vendorMaintenceId").append("<option value='"+result[i].id+"'>"+result[i].name+"</option>");
                   }
                },
                error: function(XMLHttpRequest, textStatus, errorThrown) {
                    console.info(errorThrown);
                }
            });
        });

年份下拉列表:
<select id="myYear" class="form-control"></select>
        //设置年份的选择
        var myDate= new Date();
        var startYear=myDate.getFullYear()-10;//起始年份
        var endYear=myDate.getFullYear()+10;//结束年份
        var obj=document.getElementById('myYear')
        for (var i=startYear;i<=endYear;i++)
        {
            obj.options.add(new Option(i,i));
        }
        obj.options[obj.options.length-11].selected=1;

表单验证
 $inputForm.validate({
            rules: {
                
                price: {
                    required: true,
                    number: true,
                    minlength: 1
                },
                displacement: {
                    required: true,
                    minlength: 1,
                    maxlength: 50
                },
                transmission: {
                    required: true,
                    minlength: 1,
                    maxlength: 50
                },
                chassis: {
                    required: true,
                    minlength: 1,
                    maxlength: 50,
                    remote: {
                        url: "${base}/admin/vehiclemanagment/check_chassis.jhtml",(这里请求后端看该字段是否重复)
                        cache: false
                    }
                },
                responsible: {
                    required: true,
                    minlength: 1,
                    maxlength: 50
                },
                roleIds: "required"
            },

            messages: {
                chassis: {
                    remote: "${message("common.validate.exist")}"
                }
            }
        });

如果查询某个有关联的实体时,查询出来的实体不是标准的json就在该实体上加如下注解,第三个参数为set集合名称,如果对应多个多方,就依次往后写

@JsonIgnoreProperties({"hibernateLazyInitializer", "handler","entityVehicleManagments"})
建立一对多实体:一方Person需要将多方写成集合,并在get方法上写
@OneToMany(mappedBy = "person", fetch = FetchType.LAZY)
多方需要将一方写成自己的属性,并在get方法上写
@ManyToOne(fetch = FetchType.LAZY)

通过表单形式给bootstrap做查询条件,先写好表单,表单不需要提交地址,将提交按钮放在表单外边。给包裹表单的div标签一个id,通过它获取表单数据。表单提交按钮代码如下:
<button id="subBtn" type="submit" class="btn btn-primary m-t-md pull-right">检索</button>

通过下面js代码提交点击按钮时,让bootstrap表格刷新。
var $table = $('#listTable'),
                $ok = $('#subBtn');
        $(function () {
            $ok.click(function () {
                $table.bootstrapTable('refresh');
            });

        });
通过下面js代码将表单数据取出,并放入bootstrap表格传参。
    function queryParams(params) {
        var options = $('#listTable').bootstrapTable('getOptions');

        var params ={};

        $('#toolbar1').find('input[name]').each(function(){
            params[$(this).attr('name')]=$(this).val();
        }) ;
        params['pageNumber']=options.pageNumber;
        params['pageSize']=options.pageSize;

        return params;

    }
后端带条件的查询,代码如下:
 @RequestMapping(value = "/json_list", method = RequestMethod.GET)
    public
    @ResponseBody
    Map<String, Object> jsonList(Pageable pageable, ModelMap model,String name,String referred) {
        Map<String, Object> resultMap = new HashMap<String, Object>();
        List<Filter> filters = new ArrayList<Filter>();
        System.out.print(name);
        if(StringUtils.isNotEmpty(name)){
            Filter nameFilter = new Filter("name",Filter.Operator.like,'%'+name+'%');
            filters.add(nameFilter);
        }
        if (StringUtils.isNotEmpty(referred)){
            Filter referredFilter = new Filter("referred",Filter.Operator.like,'%'+referred+'%');
            filters.add(referredFilter);
        }
        pageable.setFilters(filters);
        Page<DataInterface> page = dataInterfaceService.findPage(pageable);
        resultMap.put("total", page.getTotal());
        resultMap.put("rows", page.getContent());
        return resultMap;

    }
主要就是在基础的查询全部之下,添加查询的过滤器。
使用bootstraptable的queryParams方法向后台传递参数时,如果后台出现中文乱码,改变tomcat容器的配置即可。
在tomcat的server.xml中
<Connector port="8080" protocol="HTTP/1.1"  
               connectionTimeout="20000"  

               redirectPort="8443" URIEncoding ="UTF-8"/>
添加URIEncoding ="UTF-8"即可

animated fadeInRight  在外层的div加上这两个css就会有渐进效果
<script type="text/javascript" src="${base}/resources/admin/js/common.js"></script>
<script type="text/javascript" src="${base}/resources/admin/js/input.js"></script>页面如果需要使用ajax请求,需要导入上面两个js
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Freemarker 级联下拉