前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >bootstrap-suggest插件处理复杂对象时的解决方案

bootstrap-suggest插件处理复杂对象时的解决方案

作者头像
别团等shy哥发育
发布2023-02-25 17:10:21
8150
发布2023-02-25 17:10:21
举报
文章被收录于专栏:全栈开发那些事

文章目录

一、问题描述:

在用bootstrap-suggest插件的时候,如果要提示的属性中有关联对象的话,前端页面显示不出来(下面的areaId属性加载不出来) wellInfo类关键属性:

代码语言:javascript
复制
public class WellInfo {
    private String wellId;  
    private Area area;
    private String wellType;    
    private String abandonWell;

Area类关键属性:

代码语言:javascript
复制
public class Area { 
    private String areaId;  
    private String areaName;    
    private String areaAddress; 
    private String areaPhone;  
    private String areaRemark;  

二、解决办法:

我们利用插件的processData属性来格式化后端传来的JSON数据。

后端代码:

代码语言:javascript
复制
 @RequestMapping(value = "/getAllWaterId",method = {RequestMethod.GET,RequestMethod.POST})
    @ResponseBody
    public Map<String,Object> getAllWaterId(HttpServletRequest req,HttpServletResponse res){
        //获取所有注水井编号
        List<WellInfo> wellInfos=wellInfoService.getAllWaterId();
        int count=0;
        if(wellInfos!=null&&wellInfos.size()>0){
            count=wellInfos.size();
        }
        //创建result对象,保存返回结果
        Map<String,Object> result=new HashMap<>(2);
        result.put("count",count);
        result.put("value",wellInfos);
        return result;
    }

jsp页面:

代码语言:javascript
复制
 <label class="col-sm-1 control-label text-right">井编号:</label>
                <div class="col-sm-2">
                    <div class="input-group">
                        <input type="text" class="form-control" name="wellInfo.wellId" id="wellId"/>
                        <div class="input-group-btn">
                            <button type="button" class="btn btn-white dropdown-toggle"
                                    data-toggle="dropdown">
                                <span class="caret"></span>
                            </button>
                            <ul class="dropdown-menu dropdown-menu-right" role="menu">
                            </ul>
                        </div>
                    </div>
                </div>

js代码渲染:

代码语言:javascript
复制
 //bootstrap-suggest插件加载所有油井
        $("#wellId").bsSuggest('init',{
            clearable:true,   //是否可清除已输入的内容
            url:"/opms/wellInfo/getAllOilId",
            showBtn:true,          //是否显示可下拉按钮
            ignorecase:true,        //前端搜索匹配时,忽略大小写
            hideOnSelect:true,      //鼠标从列表单击选择了值时,是否隐藏选择列表
            listAlign:'auto',        //提示列表对齐位置,left/right/auto
            idField:"wellId",           //每组数据的哪个字段作为 data-id,优先级高于 indexId 设置(推荐)
            keyField :"wellId",			//每组数据的哪个字段作为输入框内容,优先级高于 indexKey 设置(推荐)
            maxOptionCount: 200,            // 选择列表最多显示的可选项数量,默认为 200
            effectiveFields: ["wellId","wellType","areaId","abandonWell"],// 有效显示于列表中的字段,非有效字段都会过滤,默认全部有效。
            effectiveFieldsAlias: { //有效字段的别名对象,用于 header 的显示
                "wellId":"井编号",
                "wellType":"井类型",
                "areaId":"作业区",
                "abandonWell":"是否报废"
            },
            processData:function (json) {   //格式化数据
               var data={value:[]};
               $.each(json.value,function (i,v) {
                    data.value.push({
                        wellId:v.wellId,
                        wellType:v.wellType,
                        areaId:v.area.areaId,
                        abandonWell:v.abandonWell
                    });
               });
                return data;
            },
            //UI
            inputWarnColor: 'rgba(255,0,0,.1)', //输入框内容不是下拉列表选择时的警告色
        }).on("onSetSelectValue",function (e,keyword) {
        }).on("onUnsetSelectValue",function (e) {
        });

实现效果:

在这里插入图片描述
在这里插入图片描述

可以看到作业区编号已经加载出来了

三、插件下载地址:

https://download.csdn.net/download/qq_43753724/15842906

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-04-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、问题描述:
  • 二、解决办法:
    • 后端代码:
      • jsp页面:
        • js代码渲染:
          • 实现效果:
          • 三、插件下载地址:
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档