专栏首页五毛程序员thymeleaf-extras-db 0.0.1发布,select标签加载数据的新姿势

thymeleaf-extras-db 0.0.1发布,select标签加载数据的新姿势

在写thymeleaf页面的时候,我为了偷懒,不想为每个select下拉列表框都写一个接口,于是这个懒人jar诞生了。该jar的核心功能是直接通过thymeleaf页面的自定义标签的属性,直接运行sql并初始化select数据。

项目地址: github gitee

简介

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

空值显示内容

&nbsp;

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的字段名][,查询条件]

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ActionBar开启Overlay Mode(覆盖模式)

    用户1737026
  • wamp+thinkphp环境配置

    用户1737026
  • ViewPager+Fragment实现支持左右滑动的Tab

    用户1737026
  • Python3爬虫抓取网易云音乐热评实战

    ? 前一段时间刚刚入门python爬虫,有大概半个月时间没有写python了,都快遗忘了。于是准备写个简单的爬虫练练手,我觉得网易云音乐最优特色的就是其精准的...

    小小科
  • Python3爬虫抓取网易云音乐热评实战

    前一段时间刚刚入门python爬虫,有大概半个月时间没有写python了,都快遗忘了。于是准备写个简单的爬虫练练手,我觉得网易云音乐最优特色的就是其精准的歌曲推...

    小小科
  • 使用 Apex 和 Compose MongoDB 开发 serverless

    Apex 是一个将开发和部署 AWS Lambda 函数的过程打包了的工具。它提供了一个本地命令行工具来创建安全上下文、部署函数,甚至追踪云端日志。由于 AWS...

    前端博客 : alili.tech
  • 再谈三星KNOX安全解决方案

    昨天谈到三星的KNOX,今天再谈谈三星KNOX安全解决方案,跟着白皮书来聊一聊! 昨天文章如下: 浅谈三星KNOX安全解决方案 ? KNOX白皮书,从5个方面...

    安智客
  • 4-微信小程序开发(小程序默认页面函数说明)

    https://www.cnblogs.com/yangfengwu/p/11601299.html

    杨奉武
  • MySQL的内存结构与物理结构

    MySQL的数据存储结构主要分两个方面:物理存储结构与内存存储结构,作为数据库,所有的数据最后一定要落到磁盘上,才能完成持久化的存储。内存结构为了实现提升数据库...

    搬砖俱乐部
  • AI辅助细胞内单个分子的自动监测

    为了理解分子在细胞中起作用的机制,或药物对细胞的作用,理想做法是能够跟踪单个分子,包括它们位于细胞中的位置以及当细胞条件发生变化时它们经历的改变。然而,现有技术...

    AiTechYun

扫码关注云+社区

领取腾讯云代金券