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

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

为什么要写这篇文章?

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

前台参考界面

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

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

主要参考代码部分:

<t:dgFunOpt exp="isDbSynch#eq#N" title="sync.db" funname="doDbsynch(id,content)" urlclass="ace_button"  urlfont="fa-database"/>
<t:dgFunOpt exp="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:dgFunOpt exp="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:dgFunOpt exp="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:dgFunOpt funname="copyOnline(id)" title="复制表单" operationCode="copyOnlineTable"  urlclass="ace_button"  urlfont="fa-copy"></t:dgFunOpt>
<t:dgFunOpt exp="hasPeizhi#ne#0" funname="propertyTable(id)" title="配置表"  urlclass="ace_button"  urlfont="fa-cog"></t:dgFunOpt>

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

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

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

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

<t:dgFunOpt exp="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 行代码:

String exp = dataGridUrl.getExp();// 判断显示表达式
if (StringUtil.isNotEmpty(exp)) {
    String[] ShowbyFields = exp.split("&&");
    for (String ShowbyField : ShowbyFields) {
        int beginIndex = ShowbyField.indexOf("#");
        int endIndex = ShowbyField.lastIndexOf("#");
        String exptype = ShowbyField.substring(beginIndex + 1, endIndex);// 表达式类型
        String field = ShowbyField.substring(0, beginIndex);// 判断显示依据字段
        String[] values = ShowbyField.substring(endIndex + 1, ShowbyField.length()).split(",");// 传入字段值
        String value = "";
        for (int i = 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
如果觉得文章对你有所帮助,右下方点个推荐~


posted @ 2019-03-12 22:59 niceyoo 阅读(...) 评论(...) 编辑 收藏

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/414570.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用java修改图片DPI

修改以后可以直接用PS打开看效果 全部使用rt下的类&#xff0c;无需下载其他jar包 import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGEncodeParam; import com.sun.image.codec.jpeg.JPEGImageEncoder; import javax.imageio.ImageIO; …

Android studio 创建kotlin工程

1、安装kotlin插件 打开settings页面。安装插件 2、已安装kotlin插件即可创建kotlin项目 打开New Project。选中Includ Kotlin support即可 3、创建kotlin或者java的activity 选中语音类型kotlin或者java kotlin项目创建完成 kotlin工程demo链接&#xff1a;https://download…

改造一下jeecg中的部门树

改造一下jeecg中的部门树 假装有需求 关于 jeecg 提供的部门树&#xff0c;相信很多小伙伴都已经用过了&#xff0c;今天假装有那么一个需求 "部门树弹窗选择默认展开下级部门"&#xff0c;带着这个需求再次去探索一下吧。 一、改造之前的部门选择树流程 1.1 t:depa…

html 知识

一 html是什么&#xff1f; ,1、超文本标记语言&#xff08;Hypertext Markup Language, HTML&#xff09;是一种用于创建网页的标记语言。 2、本质上是浏览器可识别的规则&#xff0c;我们按照规则写网页&#xff0c;浏览器根据规则渲染我们的网页。对于不同的浏览器&#xff…

工作245:vue的注意规范之v-if 与 v-for 一起使用

当 v-if 与 v-for 一起使用时&#xff0c;v-for 具有比 v-if 更高的优先级&#xff0c;这意味着 v-if 将分别重复运行于每个 v-for 循环中 所以&#xff0c;不推荐v-if和v-for同时使用 使用推荐方式&#xff1a; 或者&#xff1a;放在计算属性遍历 当它们处于同一节点&#x…

Android kotlin实现底部导航栏

1、实现效果&#xff0c;可点击或者滑动切换fragment 点击 滑动 实现方法&#xff1a; 1、创建三个fragment.kt 2、创建fragmentAdapter class MyFragmentAdapter(fragmentManage…

jeecg富文本编辑器增加字体(仿宋)

jeecg富文本编辑器增加字体(仿宋) jeecg富文本编辑器增加字体(仿宋) 温馨提示&#xff1a;jeecg 提供了 uedit 富文本的实现&#xff0c;如下针对的是 uedit 增加仿宋字体示例。 主要修改三个文件&#xff1a;plug-in\ueditor\ueditor.config.js、plug-in\ueditor\lang\en\en.…

Android kotlin使用RecyclerView实例

1、创建entity类 class InternentBarEntity {var bname: String? nullvar barea: String? nullvar badddata: String? nullvar bimage: String? nullvar bid: String? null } 2、创建adapter类 /***作者&#xff1a;created by meixi*邮箱&#xff1a;15913707499…

DNS记录类型

在之前的文章中&#xff0c;我们了解了什么是DNS以及DNS如何工作&#xff0c;现在让我们来看看 DNS 记录有哪些种类&#xff0c;以及它们有什么作用。 要理解不同的 DNS 记录&#xff0c;首先必须了解区域文件是什么? 我们来解释一下各部分分别表示什么&#xff1a; A 和 AAAA…

Android 频道管理,可拖动item排列,删除,添加

样式效果 1、创建自定义GridView /*** 作者&#xff1a;created by meixi* 邮箱&#xff1a;15913707499163.com* 日期&#xff1a;2019/5/31 13*/public class DragGridView extends GridView {/** 点击时候的X位置 */public int downX;/** 点击时候的Y位置 */public int dow…

2019王小的Java学习之路

文章背景 身边有个非常要好的朋友王某某&#xff0c;因为是发小的关系&#xff0c;之后文章统称为王小。 大专毕业后 顺利 的被安排进了某某工厂工作&#xff0c;工作一段时间后&#xff0c;尽管工作比较轻松&#xff0c;却无法忍受终日的流水线生活&#xff0c;经过我的介绍&…

JVM入门到放弃之基本概念

1. 基本概念 jvm 是可运行Java代码的假想计算机&#xff0c;包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 jvm 是运行在操作系统之上的&#xff0c;屏蔽了与具体操作系统平台相关的信息&#xff0c;使得Java程序只需生成在 jvm 上运行的字节码…

java线程并发库之--线程同步工具Exchanger的使用

Exchanger可以在两个线程之间交换数据&#xff0c;只能是2个线程&#xff0c;他不支持更多的线程之间互换数据。今天我们就通过实例来学习一下Exchanger的用法。 Exchanger的简单实例 Exchanger是在两个任务之间交换对象的栅栏&#xff0c;当这些任务进入栅栏时&#xff0c;它们…

了解JVM运行时的内存分配

前言 上文中&#xff0c;在介绍运行时数据区域中的 JAVA 堆时&#xff0c;提到了 JVM 中的堆&#xff0c;一般分为三大部分&#xff1a;新生代、老年代、永久代&#xff0c;本文将进一步了解运行时的内存分配情况。 正文 1.新生代主要用来存放新生(new)的对象。一般占据堆的 …

C#:继承过程中的静态成员

在知乎上看到一个关于“泛基“的实现&#xff0c;感觉挺有意思&#xff0c;想试试效果&#xff0c;代码如下&#xff1a; public abstract class MyBase<T> where T : MyBase<T>{public static string DataForThisType { get; set; }public static T Instance { ge…