教程总目录
上一节:JBolt开发平台入门(18)-API应用中心-JWT的生成与使用
在系列教程中,已经有了针对AutoSelect组件的使用教程和介绍,但是好多小伙伴可能还是不明白数据源结构怎么定义的。
这个教程,快速带大家了解JBolt极速开发平台前端自动化组件的省心开发模式。
Demo在JBolt这个位置:
这里有各种针对AutoSelect的使用demo,自动加载数据源,绑定handler事件,自从处理选中,自动切换使用Select2组件渲染,多级渲染,N级联动等等吧,都是一个属性配置就搞定的,没有一行JS。
用法知道,就差后端数据源定义了。
一、最简单的下拉列表选择静态数据
举例:电商模块-商品管理中 查询条件 下拉数据源
去action里看看实现:
代码并不复杂,我这里是直接创建数据并renderJsonData返回来的就OK了,这些数据也可以放入缓存中的。
理论上,不管是什么数据接口,只要你返回的数据,跟上面这个一样是个List<Option> 或者List<OptionBean>,这个AutoSelect组件就能自动处理所有事情了。
二、动态数据库里的数据
举例一、字典表数据读取
在JBolt极速开发平台中,字典表的数据可以一级也可以多级,所以AutoSelect组件只要给定字典类型的数据源地址,剩下的就不用操心了。
指定KEY,就知道加载哪些数据了,如果这个KEY指定的是单层级类型,就显示单层
如果是多级数据,就显示树形结构Select。
这块自动化适配,完全是按照属于源定义规则,自动处理的。
其他模块需要这样的话,参考字典表就行了。
举例二、用户表数据读取
这是读取用户表的demo。
针对用户表,其实有很多种使用方法,都能实现AutoSelect里加载用户列表。
1、findAll
因为User表中有id和name字段,AutoSelect组件会自动识别的,所以直接findAll就可以了。
但是,通过上面数据一看,是有问题的,用户表的数据是带着passwod等关键信息的,不能泄露出去的,所以findAll是不可取的,这样的接口可是致命的。
在这里,演示FindAll,是为了让大家明白,只要你的表里有id和name字段,Select是自动识别的,不用你操心。
2、getCommonList()
那么这里,user列表我们还能怎么读取数据呢?
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就自动识别了。
实现了Option接口,每个数据就有了text和value 这样就行了。
Permission中没有name 有title 用title作为getText的返回值即可。
2)使用getOptionsList()底层方法
还以这个没有name的表为例 获取它的数据的时候,还可以使用这个;
很明显,这几个方法都是最后返回列表数据每条数据都有text和value的
最终执行的sql类似于:
Select title as name,id as value from permission where xxx;