Jelly - как вызвать java-метод с параметрами из тега jelly

В моем файле .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})}", но это не удается с ошибкой «не удается разобрать желе».


person George Cimpoies    schedule 31.08.2018    source источник


Ответы (2)


Я полагаю, вы имели в виду

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

Синтаксис ${…} вводит интерполяцию выражений JEXL в то, что иначе трактовалось бы как буквальная строка. Он не является частью самого JEXL.

person Jesse Glick    schedule 31.08.2018
comment
Он работал с 1 параметром, но когда я попытался передать строковый параметр, например value = $ {instance.getGerritReportingValueForCustomLabel (p.verdictValue, SomeStringHere)}, я получил исключение, которое невозможно проанализировать, я также пытался использовать SomeStringHere, но «не сделал» т помочь. Но вы правы, с 1 параметром все работает нормально - person George Cimpoies; 03.09.2018

Существует два способа вызова метода Java с использованием файла Jelly. Ниже приведены два используемых объекта.

  1. Дескриптор: Как вы теперь знаете, Дескриптор - это класс конфигурации, на который указывает этот объект. Итак, из jelly в любой момент вы можете вызвать метод из своего класса Descriptor.

  2. Экземпляр: это объект, который в настоящее время настраивается на странице конфигурации. Нулевое значение, если это только что добавленный экземпляр. Значит, с помощью этого вы можете вызывать методы из вашего класса Action. Подобно получателям атрибута поля.

Вы можете связать объект желе с помощью

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

OR

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

Метод может называться backend. {Имя внутреннего метода} ().

если вы используете это из JavaScript, вам нужно использовать аннотацию @JavaScriptMethod над вызываемым методом.

person Swapnil Kashid    schedule 28.09.2018