版权声明:本文为楼主原创文章,未经楼主允许不得转载,如要转载请注明来源。

  目前公司开发一直使用的是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的那些事的更多相关文章

  1. jeecg 扩展封装查询条件 时间段查询

    使用jeecg框架开发的小伙伴们知道,添加查询条件,通常是我们加一个配置(query="true")就可以将该字段设置为查询条件.简单方便.但是这样的配置查询条件仅适用于输入框输入 ...

  2. 对bootstrap modal的简单扩展封装

    对bootstrap modal的简单扩展封装 参考自:http://www.muzilei.com/archives/677   注:原文不支持bootstrap新版本,并且居中等存在问题 此段时间 ...

  3. 学习笔记: Expression表达式目录树详解和扩展封装

    1. 表达式链接扩展封装,ORM常用 And  Or /// <summary> /// 表达式访问者 /// </summary> public class Expressi ...

  4. 基于log4net的日志组件扩展封装,实现自动记录交互日志 XYH.Log4Net.Extend(微服务监控)

    背景: 随着公司的项目不断的完善,功能越来越复杂,服务也越来越多(微服务),公司迫切需要对整个系统的每一个程序的运行情况进行监控,并且能够实现对自动记录不同服务间的程序调用的交互日志,以及通一个服务或 ...

  5. .NetCore 扩展封装 Expression<Func<T, bool>> 查询条件遇到的问题

    前面的文章封装了查询条件 自己去组装条件,但是对 And  Or  这种组合支持很差,但是也不是不能支持,只是要写更多的代码看起来很臃肿 根据 Where(Expression<Func< ...

  6. 【EXCEL终极总结分享】基于NPOI扩展封装的简易操作工具类库(简单灵活易用,支持导出、导入、上传等常见操作)

    对于EXCEL的导入.导出,我之前已分享过多次,比如: 第一种方案:<我写的一个ExcelHelper通用类,可用于读取或生成数据>这个主要是利用把EXCEL当成一个DB来进行获取数据,导 ...

  7. 学渣乱搞系列之扩展KMP的那点事

    扩展KMP牵涉了一些相对运动的姿势,比较费解!本学渣看了一天的扩展KMP,打算写点东西...本文看后,出现的后果本人一概不负责.毕竟我不是很会表达. 扩展KMP是搞什么灰机的?本学渣所知道的扩展KMP ...

  8. AndroidStudio封装SDK的那些事

    来自自己简书博客:原文地址:https://www.jianshu.com/p/4d092c915ef1 首先SDK是提供给别人调用的工具.所以常见的SDK都是以jar包,so库,aar包等方式导入A ...

  9. 【转】Python基础-封装与扩展、静态方法和类方法

    [转]Python基础-封装与扩展.静态方法和类方法 一.封装与扩展 封装在于明确区分内外,使得类实现者可以修改封装内的东西而不影响外部调用者的代码:而外部使用者只知道一个接口(函数),只要接口(函数 ...

随机推荐

  1. Asp.net MVC 视图(四)

    强类型辅助方法 模板辅助方法 Asp.net MVC中的模板辅助方法利用元数据和模板构建HTML,即:模板辅助方法可以通过使用数据注解,在运行时使用合适的任何“编辑器”来生成合适的HTML标记元数据包 ...

  2. GSM模块fibocom G510使用记录

    一、背景:最近在做一个单定位的产品,对低功耗要求较高,选用了G510系列的模块。现在仅做了三块样板,先熟悉下。 二、优点:1.功耗低,和西门子的BGS2差不多;2.注册网络指令简单;3.其他有待发现 ...

  3. 【转】 linux下的g++编译器安装

    再debian下直接apt-get install gcc g++就可以了.按照类似的逻辑,再Fedora下yum install gcc g++ 报告无法找到g++包. 查了一下,原来这个包的名字叫 ...

  4. MS Sql server 2008 学习笔记

    数据库中常用的概念 Sql本身是一个服务器,没有界面,Management Studio  只是一个SQL Server管理工具而已,不是服务器. Sql server 在管理工具下面的服务SQL S ...

  5. 【转】LokiJS:纯JavaScript实现的轻量级数据库

    原文转自:http://www.html5cn.org/article-7091-1.html LokiJS一个轻量级的面向文档的数据库,由JavaScript实现,性能高于一切.目的是把JavaSc ...

  6. [转]使用 C 编写 Lua 模块

    Lua 作为一种小巧的语言,一般都是嵌入到 C/C++ 中作为扩展语言,但是也可以作为独立的脚本语言使用,并且可以使用 C/C++ 编写扩展模块.在参考资料 [1] 中有怎样用 C/C++ 编写模块的 ...

  7. CentOS6.5安装openLdap

    一.关闭防火墙和selinux 关闭防火墙 chkconfig iptables off service iptables stop 关闭selinux vim /etc/selinux/config ...

  8. LA 4329 ping-pong树状数组

    题目链接: 刘汝佳,大白书,P197. 枚举裁判的位置,当裁判为i时,可以有多少种选法,如果已经知道在位置i之前有ci个数比ai小,那么在位置i之前就有i-1-ci个数比ai大. 在位置i之后有di个 ...

  9. c++作用域运算符---7

    原创博客:转载请标明出处:http://www.cnblogs.com/zxouxuewei/ ::是C++里的“作用域运算符”. 比如声明了一个类A,类A里声明了一个成员函数void f(),但没有 ...

  10. Linux集群及LVS简介

    一.什么是集群 通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作.在某种意义上,他们可以被看作是一台计算机.集群系统中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的 ...