2014-10-03 3 views
1

Возможно ли динамическое обновление значения текстового поля в желе?Jenkins Jelly Обновление текстового поля

У меня есть раскрывающийся список, параметры которого определяются на основе предыдущих данных в форме. Выполнение было простым, если доступная документация была доступна онлайн (просто используя метод doFill...Items() в дескрипторе). Каждая опция представляет собой "Property". В раскрывающемся списке у меня есть текстовое поле, которое представляет свойство "Property Value".

Jelly Файл:

<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form"> 
    <f:entry title="Property" field="property"> 
     <f:select /> 
    </f:entry> 
    <f:entry title="Value" field="propertyValue"> 
     <f:textbox value="${descriptor.getDefaultValue()}" /> 
    </f:entry> 
    <div align="right"> 
     <f:repeatableDeleteButton/> 
    </div> 
</j:jelly> 

Каждый раз, когда выбран новый элемент в раскрывающемся списке, я хочу, чтобы обновить текстовое поле с текущим значением свойства. Я пробовал несколько разных вещей, таких как установка атрибутов default и value в файле Jelly. Тем не менее, я не смог выяснить способ запуска обновления в текстовое поле после того, как форма была инициализирована.

Descriptor:

@Extension 
public static class DescriptorImpl extends Descriptor<ProvisionPropertyParam> { 
    /** 
    * Gets a list of update properties for a specific component. 
    * 
    * @param component 
    * @return ListBoxModel - the list of update properties for the component 
    */ 
    public ListBoxModel doFillPropertyItems(@QueryParameter("component") @RelativePath("..") String component) { 
     return ServiceManager.userInterfaceService().getProvisionProperties(component); 
    } 
    public String doFillPropertyValue(@QueryParameter("property") String property) { 
     return ServiceManager.userInterfaceService().getPropertyValue(property); 
    } 
    public String getDefaultValue() { 
     return "Test"; 
    } 
    /** 
    * {@inheritDoc} 
    */ 
    @Override 
    public String getDisplayName() { 
     return "Provision property"; 
    } 
} 

Я могу установить значение текстового поля с помощью метода getDefaultValue() успешно. Тем не менее, мне нужно иметь возможность использовать doFillPropertyValue() или другой по-разному метод, который работает одинаково. Я бы предположил, что это должно быть так же просто, как установить метод в файле желе, но этот метод имеет параметр, и я не уверен, как сделать вызов метода в желе, учитывая, что у меня нет значения для отправки Это.

Я попробовал установку:

<f:textbox value="${descriptor.doFillPropertyValue()}"/> 

Но это, очевидно, ничего не делать. Может ли кто-нибудь предоставить мне некоторые рекомендации?

+0

пытались ли вы без parenthensis в конце? –

ответ

0

В моем желе кода я использую что-то вроде этого:

<j:forEach var="currentDescriptor" items="${descriptor.tilogiPlateformeDescriptors}" varStatus="loop"> 

И в моем Java коде метод:

public DescriptorExtensionList<TilogiPlateforme, TilogiPlateformeDescriptor> getTilogiPlateformeDescriptors() 
Смежные вопросы