jeecg扩展封装tag的那些事
版权声明:本文为楼主原创文章,未经楼主允许不得转载,如要转载请注明来源。
目前公司开发一直使用的是jeecg框架,简单好用,但有时候不如自己写的随心所欲。最近项目遇到一个需求, 想封装配置加解密,本来最开始的想法是通过entity的get,set方法,get时进行解密,set时进行加密。但是同事测试发现jeecg的datagrid展示时,会调用多次get方法,那么问题就来了,此方法就行不通了。
然后也有时间,我就查看了框架的源码,追踪到底发现它确实调用了多次,因为它在封装的时候,获取数据值需要调用,有查询条件它同样需要调用……既然此路不通,那么就换路吧。既然想配置,那就扩展标签。然后就开始挖源代码,源码面前,了无密码。最后发现其实并不是那么神秘。下面就扩展封装jeecg标签做个简单说明。
第一步:为你想扩展的标签起好名字
在easyui.tld里添加如下代码
<attribute>
<name>起个有意义的名字吧</name>//标签名称
<required>true</required>//是否必须
<rtexprvalue>true</rtexprvalue>//表示是否可以使用JSP表达式
<description>一看我就是好人</description>//描述
</attribute>
注意:如果你想在<t:datagrid>里使用该标签,那理所当然要将它放在<tag><name>datagrid</name><tag>这个tag里喽。
第二步:定义了,就要去为它声明
分别在DataGridColumnTag.java和DataGridColumn.java添加上定义,怎么定义?(protected boolean name;简单吧)然后生成get,set方法
第三步:开始使用,处理业务逻辑
在DataGridTag.java找到setColumn()方法,然后加上你添加的字段。在getField()方法里处理你的逻辑,比如,我定义了一个secret标签,然后如果secret为true,我就进行页面值解密处理。
//数据加密
if(column.isSecret()){
sb.append(",formatter:function(value,rec,index){"); sb.append("$.ajax({type: \"post\",url: \"url\", data: {\"value\":value}, dataType:\"json\",async : false,success: function(msg){value=msg.msg;} });return value;}"); }
记得在DataGridColumnTag.java里doEndTag()方法里同样加上你定义的字段。ok,这样自定义标签已经封装完成,在页面里去使用吧。
<t:dgCol title="" field="" secret="true"></t:dgCol>
jeecg扩展封装tag的那些事的更多相关文章
- jeecg 扩展封装查询条件 时间段查询
使用jeecg框架开发的小伙伴们知道,添加查询条件,通常是我们加一个配置(query="true")就可以将该字段设置为查询条件.简单方便.但是这样的配置查询条件仅适用于输入框输入 ...
- 对bootstrap modal的简单扩展封装
对bootstrap modal的简单扩展封装 参考自:http://www.muzilei.com/archives/677 注:原文不支持bootstrap新版本,并且居中等存在问题 此段时间 ...
- 学习笔记: Expression表达式目录树详解和扩展封装
1. 表达式链接扩展封装,ORM常用 And Or /// <summary> /// 表达式访问者 /// </summary> public class Expressi ...
- 基于log4net的日志组件扩展封装,实现自动记录交互日志 XYH.Log4Net.Extend(微服务监控)
背景: 随着公司的项目不断的完善,功能越来越复杂,服务也越来越多(微服务),公司迫切需要对整个系统的每一个程序的运行情况进行监控,并且能够实现对自动记录不同服务间的程序调用的交互日志,以及通一个服务或 ...
- .NetCore 扩展封装 Expression<Func<T, bool>> 查询条件遇到的问题
前面的文章封装了查询条件 自己去组装条件,但是对 And Or 这种组合支持很差,但是也不是不能支持,只是要写更多的代码看起来很臃肿 根据 Where(Expression<Func< ...
- 【EXCEL终极总结分享】基于NPOI扩展封装的简易操作工具类库(简单灵活易用,支持导出、导入、上传等常见操作)
对于EXCEL的导入.导出,我之前已分享过多次,比如: 第一种方案:<我写的一个ExcelHelper通用类,可用于读取或生成数据>这个主要是利用把EXCEL当成一个DB来进行获取数据,导 ...
- 学渣乱搞系列之扩展KMP的那点事
扩展KMP牵涉了一些相对运动的姿势,比较费解!本学渣看了一天的扩展KMP,打算写点东西...本文看后,出现的后果本人一概不负责.毕竟我不是很会表达. 扩展KMP是搞什么灰机的?本学渣所知道的扩展KMP ...
- AndroidStudio封装SDK的那些事
来自自己简书博客:原文地址:https://www.jianshu.com/p/4d092c915ef1 首先SDK是提供给别人调用的工具.所以常见的SDK都是以jar包,so库,aar包等方式导入A ...
- 【转】Python基础-封装与扩展、静态方法和类方法
[转]Python基础-封装与扩展.静态方法和类方法 一.封装与扩展 封装在于明确区分内外,使得类实现者可以修改封装内的东西而不影响外部调用者的代码:而外部使用者只知道一个接口(函数),只要接口(函数 ...
随机推荐
- JVM-并发-Java 内存模型
Java内存模型 (1). 主内存与工作内存 Java内存模型规定了所有的变量都存储在主内存中. 每类线程的变量的主内存副本拷贝,线程对变量的所有操作(读操作,赋值操作等)都必须工作内存中进行,而不能 ...
- Opencv 2.4.10 +VS2010 项目配置记录
http://blog.csdn.net/scottly1/article/details/40978625?utm_source=tuicool 因为工作需要,小小的研究一下Opencv的图像处理, ...
- js 点击复制内容
<textarea id="pushUrlsTxt" rows="5" cols="55"></textarea> ...
- c/c++ 函数指针 指针函数 数组的引用 指针数组 数组指针
1.指针数组数组指针 引用数组 数组的引用 int *a[10] 指针数组 每一个元素都是一个指针 Int (*a)[10] 数组指针 P指向一个含有10个元素的数组 Int (&a)[10] ...
- .使用 HTML+CSS 实现如图布局,border-widht 5px,一个格子大小是 50*50,hover时候边框变为红色(兼容IE6+,考虑语义化的结构)
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...
- [转]http://makefiletutorial.com/
Intro This makefile will always run. The default target is some_binary, because it is first. some_bi ...
- colormap
http://cn.mathworks.com/help/matlab/ref/colormap.html
- js 中json字符串转化json对象
JSON字符串:var str = '{ "name": "cxh", "sex": "man" }'; JSON对象: ...
- SVG裁剪和平移的顺序
SVG 里为元素添加 clip-path 属性即可做出裁剪效果,添加 transfrom 属性可以平移.旋转元素. 根据需求不同,有两种情况: 先裁剪元素,再把裁剪后的图形平移 先平移元素,再按区域裁 ...
- CentOS 6.6 中中文输入法设置
排版比较乱你,参见 https://www.zybuluo.com/Jpz/note/144597 Linux开发环境配置 安装完系统之后,我们需要设置中文输入法,中文输入法是系统自带的,设置步骤如下 ...