Jelly - 如何使用 jelly 标签的参数调用 java 方法

Jelly - how to call java method with parameters from jelly tag

我的 .jelly 文件中有以下条目:

<j:forEach items="${instance.getVerdictCategoriesList()}" var="p">
    <f:entry title="${%Started}"                             
             field="${p.verdictValue}">
             <f:textbox name="${p.verdictValue}"
                        value="${instance.returnDefaultZeroValue()}"
                        default=""/>
    </f:entry>

目前我正在调用 ${instance.returnDefaultZeroValue()} 并且它有效。

我想调用一个有多个参数的方法。我该怎么做?

喜欢:value="${instance.getGerritReportingValueForCustomLabel(${p.verdictValue})}" 但失败并出现 "can't parse jelly" 错误。

我想你的意思是

value="${instance.getGerritReportingValueForCustomLabel(p.verdictValue)}"

${…} 语法将 JEXL 表达式插值到本来会被视为文字字符串的内容中。它不是 JEXL 本身的一部分。

使用Jelly文件调用Java方法有两种方式 以下是使用的两个对象

  1. Descriptor:如你所知,Descriptor是配置class这个对象指向的。所以在任何时候从果冻,你可以从你的描述符 class.

  2. 调用方法
  3. 实例:这是当前在配置页面上配置的对象。如果是新添加的实例,则为空。意味着通过使用它,您可以从您的 Action class 中调用方法。比如字段属性的getters.

您可以使用

将对象与果冻绑定

<st:bind var="backend" value="${descriptor}"/>

<st:bind var="instance" value="${instance}"/>

该方法可以作为后端调用。{后端方法名称}()。

如果您从 JavaScript 使用它,那么您需要在被调用的方法上使用 @JavaScriptMethod 注释。