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方法有两种方式
以下是使用的两个对象
Descriptor:如你所知,Descriptor是配置class这个对象指向的。所以在任何时候从果冻,你可以从你的描述符 class.
调用方法
实例:这是当前在配置页面上配置的对象。如果是新添加的实例,则为空。意味着通过使用它,您可以从您的 Action class 中调用方法。比如字段属性的getters.
您可以使用
将对象与果冻绑定
<st:bind var="backend" value="${descriptor}"/>
或
<st:bind var="instance" value="${instance}"/>
该方法可以作为后端调用。{后端方法名称}()。
如果您从 JavaScript 使用它,那么您需要在被调用的方法上使用 @JavaScriptMethod 注释。
我的 .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方法有两种方式 以下是使用的两个对象
Descriptor:如你所知,Descriptor是配置class这个对象指向的。所以在任何时候从果冻,你可以从你的描述符 class.
调用方法
实例:这是当前在配置页面上配置的对象。如果是新添加的实例,则为空。意味着通过使用它,您可以从您的 Action class 中调用方法。比如字段属性的getters.
您可以使用
将对象与果冻绑定<st:bind var="backend" value="${descriptor}"/>
或
<st:bind var="instance" value="${instance}"/>
该方法可以作为后端调用。{后端方法名称}()。
如果您从 JavaScript 使用它,那么您需要在被调用的方法上使用 @JavaScriptMethod 注释。