博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jeecg扩展封装tag的那些事
阅读量:5283 次
发布时间:2019-06-14

本文共 1402 字,大约阅读时间需要 4 分钟。

  

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

  目前公司开发一直使用的是jeecg框架,简单好用,但有时候不如自己写的随心所欲。最近项目遇到一个需求, 想封装配置加解密,本来最开始的想法是通过entity的get,set方法,get时进行解密,set时进行加密。但是同事测试发现jeecg的datagrid展示时,会调用多次get方法,那么问题就来了,此方法就行不通了。

  然后也有时间,我就查看了框架的源码,追踪到底发现它确实调用了多次,因为它在封装的时候,获取数据值需要调用,有查询条件它同样需要调用……既然此路不通,那么就换路吧。既然想配置,那就扩展标签。然后就开始挖源代码,源码面前,了无密码。最后发现其实并不是那么神秘。下面就扩展封装jeecg标签做个简单说明。

  第一步:为你想扩展的标签起好名字

  在easyui.tld里添加如下代码

1 
2
起个有意义的名字吧
//标签名称3
true
//是否必须4
true
//表示是否可以使用JSP表达式5
一看我就是好人
//描述6

注意:如果你想在<t:datagrid>里使用该标签,那理所当然要将它放在<tag><name>datagrid</name><tag>这个tag里喽。

  第二步:定义了,就要去为它声明

分别在DataGridColumnTag.java和DataGridColumn.java添加上定义,怎么定义?(protected boolean name;简单吧)然后生成get,set方法

  第三步:开始使用,处理业务逻辑

在DataGridTag.java找到setColumn()方法,然后加上你添加的字段。在getField()方法里处理你的逻辑,比如,我定义了一个secret标签,然后如果secret为true,我就进行页面值解密处理。

1 //数据加密2             if(column.isSecret()){3                 sb.append(",formatter:function(value,rec,index){");4 5                 sb.append("$.ajax({type: \"post\",url: \"url\", data: {\"value\":value}, dataType:\"json\",async : false,success: function(msg){value=msg.msg;}  });return value;}");6                 7             }

记得在DataGridColumnTag.java里doEndTag()方法里同样加上你定义的字段。ok,这样自定义标签已经封装完成,在页面里去使用吧。

 

 

转载于:https://www.cnblogs.com/xu-lei/p/5849790.html

你可能感兴趣的文章
div最低高度设置
查看>>
Chrome浏览器正常,IE下界面却乱了
查看>>
关于不断刷新界面jsp+ajax
查看>>
课程总结
查看>>
gcc/g++ 如何支持c11 / c++11标准编译
查看>>
js高阶函数应用—函数防抖和节流
查看>>
牛客 545A 小A与最大子段和 & CF 660F Bear and Bowling 4
查看>>
eclipse 中java/scala 混合的maven项目 工作环境篇
查看>>
顺序栈与两栈共享空间-C语言实现
查看>>
【mongo】可以用localhost启动,无法用ip启动问题的解决
查看>>
【QT】视频播放
查看>>
HTML中使用javascript解除禁止input输入框代码:
查看>>
揭开Redis的神秘面纱
查看>>
Object流
查看>>
bzoj1293 [SCOI2009]生日礼物
查看>>
转 10 个 Nginx 的安全提示
查看>>
Windows Phone开发(8):关于导航的小技巧 转:http://blog.csdn.net/tcjiaan/article/details/7285062...
查看>>
React零碎知识点回顾
查看>>
字符串类型 字符串下标 字符串的方法 切片 for循环的一些总结
查看>>
Ajax学习笔记1之第一个Ajax应用程序
查看>>