jeecg自定义按钮使用exp属性不起作用

摘要:
之前写过一篇类似的文章jeecg笔记之自定义显示按钮exp属性,但是有些小伙伴留言参考后不起作用,当时我的jeecg版本为3.7.5,最终以版本不同,暂时搁浅了。前台参考界面因为重新拉取的新版本jeecg(3.8),没有合适的场景演示,那么就参考一下官方的使用案例吧。分析一行代码部分:表达式:isDbSynch#eq#Y&&jformType#ne#3isDbSynch:属性字段,注意是实体字段,非数据库表字段列名称eq:条件判断中的等于,ne为不等于empty:为空判断,条件为true或者false。

为什么要写这篇文章?

之前写过一篇类似的文章 jeecg笔记之自定义显示按钮exp属性,但是有些小伙伴留言参考后不起作用,当时我的 jeecg 版本为3.7.5,最终以版本不同,暂时搁浅了。
今天,重新回到这个问题,一起去讨伐这个不起效果的 exp

前台参考界面

因为重新拉取的新版本 jeecg(3.8),没有合适的场景演示,那么就参考一下官方的使用案例吧。

Online表单开发界面(cgFormHeadList.jsp)

jeecg自定义按钮使用exp属性不起作用第1张

主要参考代码部分:

<t:dgFunOptexp="isDbSynch#eq#N"title="sync.db"funname="doDbsynch(id,content)"urlclass="ace_button"urlfont="fa-database"/>
<t:dgFunOptexp="isDbSynch#eq#Y&&jformType#ne#3"funname="addbytab(id,content)"title="form.template"urlclass="ace_button"urlStyle="background-color:#5F9EA0"urlfont="fa-cog"></t:dgFunOpt>
<t:dgFunOptexp="isDbSynch#eq#Y&&jformType#ne#3"funname="addlisttab(tableName,content)"title="function.test"urlStyle="background-color:#18a689;"urlclass="ace_button"urlfont="fa-gavel"></t:dgFunOpt>
<t:dgFunOptexp="isDbSynch#eq#Y&&jformType#ne#3"funname="popMenuLink(tableName,content)"title="config.place"urlStyle="background-color:#1a7bb9;"urlclass="ace_button"urlfont="fa-cog"></t:dgFunOpt>
<t:dgFunOptfunname="copyOnline(id)"title="复制表单"operationCode="copyOnlineTable"urlclass="ace_button"urlfont="fa-copy"></t:dgFunOpt>
<t:dgFunOptexp="hasPeizhi#ne#0"funname="propertyTable(id)"title="配置表"urlclass="ace_button"urlfont="fa-cog"></t:dgFunOpt>

当我看到新版本这几行代码的时候,感觉哪里怪怪的,这跟上几个版本差不多呀!

信誓旦旦的去比对了一下两个文件的差异,如下:

jeecg自定义按钮使用exp属性不起作用第2张

事实证明,确实没有差距,只是新版本宽度样式稍微变化了一下。

分析一行代码部分(功能测试按钮):

<t:dgFunOptexp="isDbSynch#eq#Y&&jformType#ne#3"funname="addlisttab(tableName,content)"title="function.test"urlStyle="background-color:#18a689;"urlclass="ace_button"urlfont="fa-gavel"></t:dgFunOpt>

表达式:isDbSynch#eq#Y&&jformType#ne#3

  • isDbSynch:属性字段,注意是实体字段,非数据库表字段列名称
  • eq:条件判断中的等于,ne 为不等于
  • empty:为空判断,条件为 true 或者 false。

补充

关于 exp 具体实现代码部分,在此就不展开说明了,感兴趣的小伙伴可以看一下这个类 DataGridTag.java 的 2552 行代码:

Stringexp=dataGridUrl.getExp();//判断显示表达式
if(StringUtil.isNotEmpty(exp)){
String[]ShowbyFields=exp.split("&&");
for(StringShowbyField:ShowbyFields){
intbeginIndex=ShowbyField.indexOf("#");
intendIndex=ShowbyField.lastIndexOf("#");
Stringexptype=ShowbyField.substring(beginIndex+1,endIndex);//表达式类型
Stringfield=ShowbyField.substring(0,beginIndex);//判断显示依据字段
String[]values=ShowbyField.substring(endIndex+1,ShowbyField.length()).split(",");//传入字段值
Stringvalue="";
for(inti=0;i<values.length;i++){
value+="'"+""+values[i]+""+"'";
if(i<values.length-1){
value+=",";
}
}
if("eq".equals(exptype)){
sb.append("if($.inArray(rec."+field+",["+value+"])>=0){");
}
if("ne".equals(exptype)){
sb.append("if($.inArray(rec."+field+",["+value+"])<0){");
}
if("empty".equals(exptype)&&value.equals("'true'")){
sb.append("if(rec."+field+"==''){");
}
if("empty".equals(exptype)&&value.equals("'false'")){
sb.append("if(rec."+field+"!=''){");
}
}
}

最后

虽然上方,我通过 3.8 版本重新尝试了 exp 属性,但是你仍然存在无法生效的问题的话,欢迎交流~。

文章作者:niceyoo
文章地址:https://www.cnblogs.com/niceyoo/p/10520278.html
如果觉得文章对你有所帮助,右下方点个推荐~


免责声明:文章转载自《jeecg自定义按钮使用exp属性不起作用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇oracle语句批处理JS输出为[object Object] 如何解决下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

6、jeecg 笔记之 自定义excel 模板导出(一)

1、前言 jeecg 中已经自带 excel 的导出导出功能,其所使用的是 easypoi,尽管所导出的 excel 能满足大部分需求, 但总是有需要用到自定义 excel 导出模板,下文所用到的皆是 easypoi 提供的,为方便下次翻阅,故记之。 2、代码部分 2.1、controller @RequestMapping("/myExcel")...

浅谈JEECG多数据源的使用

首先,简单的介绍下什么是JEECG。JEECG(J2EECode Generation)是一款基于代码生成器的免费开源的快速开发平台,使用JEECG可以简单快速地开发出企业级的Web应用系统。JEECG提倡简单功能由代码生成器直接生成,复杂业务采用表单自定义,业务流程使用工作流来实现、扩展出任务接口,由开发者编写特殊业务逻辑。 下面我们重点讲解下JEECG...

jeecg下实现自动默认模糊查询

也许jeecg的作者深受SAP毒害吧,没考虑到广大使用JEECG的人群为SAP用户,及所开发的项目均为中小项目,无惧大数据模糊查询带来的功能影响。 经网友“&&康&&"的指点,按下列方式即可实现jeecg的自动模糊查询。 1、找到相关类:PageValueConvertRuleEnum.Java 注意其的路径,有好几个同名类...

8、jeecg 笔记之 自定义word 模板导出(一)

1、前言 jeecg 中已经自带 word 的导出导出功能,其所使用的也是 easypoi,尽管所导出的 word 能满足大部分需求, 但总是有需要用到自定义 word导出模板,下文所用到的皆是 easypoi 提供的,为方便下次翻阅,故记之。 2、代码部分 2.1、controller @RequestMapping("/ftl2word") publi...

【JEECG技术文档】JEECG平台对外接口JWT应用文档V3.7.2

转载:https://www.cnblogs.com/jeecg158/p/8427208.html 一、接口方式 接口调用采用http协议,rest请求方式; 二、接口安全 接口安全采用Json web token (JWT)机制,基于token的鉴权机制. 1.机制说明 基于token的鉴权机制类似于http协议也是无状态的,它不需要在服务端...

开源项目【JEECG BOOT 低代码开发平台(前后端分离版本)】

项目介绍: Java Low Code Platform for Enterprise web applications JeecgBoot 是一款基于代码生成器的低代码平台!前后端分离架构 SpringBoot2.x,SpringCloud,Ant Design&Vue,Mybatis-plus,Shiro,JWT,支持微服务。强大的代码生成器...