thymeleaf-extras-db 0.0.1发布,select标签加载数据的新姿势
在写thymeleaf页面的时候,我为了偷懒,不想为每个select下拉列表框都写一个接口,于是这个懒人jar诞生了。该jar的核心功能是直接通过thymeleaf页面的自定义标签的属性,直接运行sql并初始化select数据。
简介
thymeleaf-extras-db是针对thymeleaf的扩展,主要是简化前端select标签数据的获取,让select标签直接从数据库加载数据,而不需要单独写接口,支持缓存。
导入
<dependency>
<groupId>com.github.jeesun.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-db</artifactId>
<version>0.0.1</version>
</dependency>
使用教程
thymeleaf-extras-db目前支持两种自定义标签t:dict和t:select,两个标签仅一个属性不同,其他属性两者都支持。t:dict和t:select都支持普通select标签属性,也支持select2和easyui-combobox属性。需要注意的是,t:dict标签的数据,是从表t_dict_type和t_dict_type_group查询的,需要建表mysql.sql。
在html页面上,需要给html标签添加属性xmlns:t="http://www.w3.org/1999/xhtml"。
使用示例:
<t:dict class="form-control select2" id="add_menu_type" name="menuType" dict-name="menu_type" style="width:100%"></t:dict>
<t:select id="add_menu_group_id" name="pid" order="desc" query="t_side_menu,name,id,pid is null" class="form-control select2" data-live-search="true" style="width:100%"></t:select>
easyui中使用方式:
<t:dict class="easyui-combobox" id="search_authority" name="authority" dict-name="role_type" style="width:160px" allow-empty="true"></t:dict>
1. 新建配置类
在Spring Boot中,使用thymeleaf-extras-db很简单,先新建一个配置类:
@Configuration
public class CustomDialectConfig {
@Autowired
private JdbcTemplate jdbcTemplate;
@Autowired
private CacheManager cacheManager;
@Bean
public DbDialect dbDialect(){
//return new DbDialect(jdbcTemplate);
return new DbDialect(jdbcTemplate, cacheManager);
}
}
2. 配置缓存
请在application.yml中添加如下配置:
spring:
cache:
cache-names: listOptionCache
如果你使用的是ehcache,那么还需要在ehcache.xml中新增如下类似配置:
<cache name="listOptionCache"
maxElementsInMemory="0"
eternal="true"
overflowToDisk="true"
diskPersistent="true"
memoryStoreEvictionPolicy="LRU">
</cache>
3. 标签属性及含义
| 属性 | 含义 | 是否必填 | 可选值 | 默认值 |
|---|---|---|---|---|
| id | id | 否 | ||
| class | class | 否 | ||
| name | name | 否 | ||
| style | style | 否 | ||
| order | 排序方式 | 否 | ||
| allow-empty | 允许空值 | 否 | true,false | true |
| empty-message | 空值显示内容 | 否 | | |
| cacheable | 是否允许缓存 | 否 | true,false | true |
| data-live-search | select2专有属性 | 否 | true,false | |
| multiple | select2专有属性 | 否 | multiple | |
| data-options | easyui-combobox专有属性 | 否 | ||
| dict_name | (t:dict独有)字典名称,只能填t_dict_type_group的type_group_code字段的值 | 是 | ||
| query | (t:select独有)属性规则:表名,显示的字段名[,作为option的value的字段名][,查询条件] | 是 |
thymeleaf-extras-db 0.0.1发布,select标签加载数据的新姿势的更多相关文章
- asp.net c# select 动态加载数据
1.说明通过 asp.net,利用jQuery ,c#语言给 select控件动态加载数据.前端页面使用的是.aspx类型的HTML页面,后台使用MVC上的controller控制器 2.webcon ...
- [Android Pro] 使用CursorLoader异步加载数据 from 3.0
Android 3.0引入了CursorLoader实现异步加载数据,为了避免同步查询数据库时阻塞UI线程的问题.在API 11之前可以通过下载支持库,来使之前的系统支持此功能,下载页面为 http: ...
- 使用 .NET Core 3.0 的 AssemblyLoadContext 实现插件热加载
一般情况下,一个 .NET 程序集加载到程序中以后,它的类型信息以及原生代码等数据会一直保留在内存中,.NET 运行时无法回收它们,如果我们要实现插件热加载 (例如 Razor 或 Aspx 模版的热 ...
- Web App 向上滑动动态加载数据 2015-06-11 09:36 20人阅读 评论(0) 收藏
好久没有写博客了 - - ,个人原因 个人原因.. 宣传一下...自己的.NET群:252713569 欢迎各位大神加入 嗯..最近在公司开发微信平台的东西..需要做一个WebAPP(PS:其实就是 ...
- setUserVisibleHint的使用.执行顺序和viewPager.setOffscreenPageLimit(0)不管用还是默认会加载第二个fragment
处理问题一:viewPager.setOffscreenPageLimit(0)不管用还是默认会加载第二个fragment的原因(源码解读); 处理问题二:setUserVisibleHint的使用场 ...
- pytorch1.0神经网络保存、提取、加载
pytorch1.0网络保存.提取.加载 import torch import torch.nn.functional as F # 包含激励函数 import matplotlib.pyplot ...
- vue2.0无限滚动加载数据插件
做vue项目用到下拉滚动加载数据功能,由于选的UI库(element)没有这个组件,就用Vue-infinite-loading 这个插件代替,使用中遇到的一些问题及使用方法,总结作记录! 安装: ...
- EventBus实现 - 发布订阅 - XML加载
EventBus实现 - 发布订阅 - XML加载 受到CQRS的影响,写了个EventBus,能实现发布订阅模式执行event,在DDD模型中,可以使用如下代码触发事件: EventBus bus ...
- Fullcalendar改版后发布到IIS或者tomcat里面前端加载数据不显示的问题
问题如题:Fullcalendar改版后发布到IIS或者tomcat里面前端加载数据不显示的问题 解决办法:通过火狐浏览器工具发现是时间格式不对的原因,需要将时间格式修改为:yyyy-MM--DD ...
随机推荐
- dtb和dtc文件浅析
目录 dtb和dtc文件浅析 工具集 dts格式 dtb头部结构 dtb标识符 分析具体的文件 title: dtb和dtc文件浅析 date: 2019/4/25 20:09:38 toc: tru ...
- Swift5 语言指南(十) 枚举
一个枚举定义了一个通用型的一组相关的值,使你在你的代码中的一个类型安全的方式这些值来工作. 如果您熟悉C,您将知道C枚举将相关名称分配给一组整数值.Swift中的枚举更灵活,并且不必为枚举的每个案例提 ...
- HTML里面form表单name,action,method,target,enctype等属性用法
HTML里面的form表单里面的name,target,enctype,method以及action的用法 HML表单HTML里面的表单是HTML页面与浏览器交互的重要手段,表单主要提交一些客户端的数 ...
- 机器学习技法笔记:13 Deep Learning
Roadmap Deep Neural Network Autoencoder Denoising Autoencoder Principal Component Analysis Summary
- 架构书籍推荐:Java中高级、架构师值得一读!
上周我们免费送出了6本关于Python的重量级技术书籍,推出后反响特别强烈,有一个和最后一名仅差了一个赞,不过我们还是额外加送了一本送给这位朋友,以资鼓励,从另一面也可以看出Java程序猿对Pytho ...
- 使用ES6的Promise完美解决回调地狱
相信经常使用ajax的前端小伙伴,都会遇到这样的困境:一个接口的参数会需要使用另一个接口获取. 年轻的前端可能会用同步去解决(笑~),因为我也这么干过,但是极度影响性能和用户体验. 正常的前端会把接口 ...
- UIAutomatorViewer增加xpath查看
原来的UIAutomatorViewer是没有xpath查看路径的,下载如下jar包: https://pan.baidu.com/s/1jpr6m0OOce7CtnDE_lIJ9A 密码:cja0 ...
- 课程四(Convolutional Neural Networks),第四 周(Special applications: Face recognition & Neural style transfer) —— 1.Practice quentions
[解释] This allows us to learn to predict a person’s identity using a softmax output unit, where the n ...
- 关于requests的session方法保持cookie的问题。
最近在做爬虫的时候遇到了一个问题,在用requests的session方法保持cookie的时候发现requests不能保持手动构建的cookie.起初以为requests只能自动保持由服务器返回的s ...
- Linux_CentOS-服务器搭建 <四>
既然tomcat,弄好了,数据库安装好了.我们考虑考虑下.今天带给大家是, 数据库的还原备份: 备份开始: 登录开始: mysql -u root -p 创建一个测试用的数据库test并创 ...