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基础-封装与扩展.静态方法和类方法 一.封装与扩展 封装在于明确区分内外,使得类实现者可以修改封装内的东西而不影响外部调用者的代码:而外部使用者只知道一个接口(函数),只要接口(函数 ...
随机推荐
- Android 每次访问网络时,都需要判断是否有网络
/** * 在执行网络操作之前判断网络是否链接可用 * * @return true 可用 false 不可用 */ private boolean isOnline() { Connectivity ...
- C++ 之 const 随笔记
const关键字,相信对C语言有所了解的同学都应该知道他的作用:1.修饰常量,2.修饰指针,3.修饰函数 1.修饰常量 const修饰后的变量被定义为常量 2.修饰指针 当用const修饰指针的时候, ...
- 查找SAP标准程序用户出口及BADI的方法
查找SAP标准事务代码中使用的BADI: 在SE24中,查看类对象CL_EXITHANDLER,在其方法(Methods)GET_INSTANCE 的第14行打断点,之后运行事务代码: 当有BADI将 ...
- 循环数据forin,foreach,for of
最近一直在对数据处理,循环匹配之类的,我的mentor也已经多次指出一个问题,就是在循环里面用if去判断一个数值是否存在的时候,只要找到就要退出,这个时候就要对循环的语法提出了要求: 1.for in ...
- 关于VC工程的组成
刚刚建立的工程,其中 .vcxproj文件是生成的工程文件,它包含当前工程的设置和工程所包含的文件等信息..vcxproj.filters文件存放工程的虚拟目录信息,也就是在解决方案浏览器中的目录结构 ...
- framework各版本对比
本对比只是粗略的让大家了解到大概有什么变化 .net 1.0 2002年2月.net 2.0 2006年1月.net 3.0 2006年11月 .net 3.5 2007年11月.net 3.5 sp ...
- Python12期培训班-day1-登陆验证代码分享
#!/usr/bin/env python import sys import getpass afile = 'afile' bfile = 'bfile' circulation_num=0 #循 ...
- PHP7在linux下的安装步骤
安装mcrypt: yum install -y php-mcrypt libmcrypt libmcrypt-devel 升级bison: cd /var/soft/ wget http://ftp ...
- [Debian]8.2升8.3
$ uname -mrs $ lsb_release -a $ sudo apt-get update#開始升級 $ sudo apt-get dist-upgrade $ sudo reboot#重 ...
- Android列出所有应用,点击可运行~
这个东西就比较容易了. MainActivity.class import android.app.Activity; import android.content.Context; import a ...