JBolt开发平台入门(19)-AutoSelect组件数据源定义详细使用教程

教程总目录

上一节:JBolt开发平台入门(18)-API应用中心-JWT的生成与使用

在系列教程中,已经有了针对AutoSelect组件的使用教程和介绍,但是好多小伙伴可能还是不明白数据源结构怎么定义的。
这个教程,快速带大家了解JBolt极速开发平台前端自动化组件的省心开发模式。

Demo在JBolt这个位置:

Demo列表-Autoselect组件演示
autoselect组件demo

这里有各种针对AutoSelect的使用demo,自动加载数据源,绑定handler事件,自从处理选中,自动切换使用Select2组件渲染,多级渲染,N级联动等等吧,都是一个属性配置就搞定的,没有一行JS。

用法知道,就差后端数据源定义了。

一、最简单的下拉列表选择静态数据

举例:电商模块-商品管理中 查询条件 下拉数据源


电商商品搜索条件
数据源地址定义

去action里看看实现:

GoodsAdminController中的实现

代码并不复杂,我这里是直接创建数据并renderJsonData返回来的就OK了,这些数据也可以放入缓存中的。


OptionBean

理论上,不管是什么数据接口,只要你返回的数据,跟上面这个一样是个List<Option> 或者List<OptionBean>,这个AutoSelect组件就能自动处理所有事情了。

二、动态数据库里的数据

举例一、字典表数据读取

在JBolt极速开发平台中,字典表的数据可以一级也可以多级,所以AutoSelect组件只要给定字典类型的数据源地址,剩下的就不用操心了。


字典表数据
标识KEY

指定KEY,就知道加载哪些数据了,如果这个KEY指定的是单层级类型,就显示单层
如果是多级数据,就显示树形结构Select。


树形结构Select

这块自动化适配,完全是按照属于源定义规则,自动处理的。

其他模块需要这样的话,参考字典表就行了。

Select2风格的也支持树形

举例二、用户表数据读取

读取用户DEMO

这是读取用户表的demo。

针对用户表,其实有很多种使用方法,都能实现AutoSelect里加载用户列表。

1、findAll

因为User表中有id和name字段,AutoSelect组件会自动识别的,所以直接findAll就可以了。


FindAll
分析数据发现问题

但是,通过上面数据一看,是有问题的,用户表的数据是带着passwod等关键信息的,不能泄露出去的,所以findAll是不可取的,这样的接口可是致命的。

在这里,演示FindAll,是为了让大家明白,只要你的表里有id和name字段,Select是自动识别的,不用你操心。

2、getCommonList()

那么这里,user列表我们还能怎么读取数据呢?

baseServic底层方法就行了

getCommonList(columns);

传入需要查询返回的列不就完了?多省心,JBolt底层提供的方法。

效果

3、text和value配合 getOptionsList()

在AutoSelect组件里显示数据用的是Option
option有text和value两个东西
在JBolt中提供了Option接口和OptionBean实现
所以,前面说了,只要你数据里有Option的text和value,select就能识别。

那么,如何让你的数据有text和value呢?

1)实现Option接口啊

比如一个没有name属性的表实现option接口,然后按条件获取列表出来就行了,select就自动识别了。


Permission实现接口后就有了text和value

实现了Option接口,每个数据就有了text和value 这样就行了。
Permission中没有name 有title 用title作为getText的返回值即可。

2)使用getOptionsList()底层方法

还以这个没有name的表为例 获取它的数据的时候,还可以使用这个;

getOptionsList

很明显,这几个方法都是最后返回列表数据每条数据都有text和value的


实现代码

最终执行的sql类似于:

Select title as name,id as value from permission where xxx;

总之,只要你有id和name 或者text和value 给AutoSelect组件就没问题。

下一节:JBolt开发平台入门(20)-前端校验自动化使用教程