пользовательский компонент Facelet для поля ввода - PullRequest
0 голосов
/ 08 февраля 2010

Я создаю «большую» форму с большим количеством полей ввода. Чтобы упростить задачу, я попытался создать компонент facelet, который инкапсулирует код для создания таблицы с двумя столбцами, где первый столбец содержит метку, а второй - поле ввода.

Тег, который включает компонент, выглядит следующим образом:

<ft:textInput cid="city" label="City:" 
       value="#{registrationBean.deal.city> }" />

Источник компонента textInput (упрощенно):

  <param name="inputField" value="#{value}" />
    <ice:inputText id="#{cid}" value="#{inputField}"                             
                required="true">        
    </ice:inputText>

Хотя форма выглядит тихо, у меня проблема в том, что значение пользователя не записывается обратно в bean-компонент. Я думаю, причина в том, что # {registrationBean.deal.city} оценивается только один раз, но не при отправке формы. Я предполагаю, что у меня есть серьезная ошибка в рассуждениях, но я не могу найти хороший документ об этом.

Спасибо за любые подсказки.

Ответы [ 2 ]

0 голосов
/ 12 февраля 2010

Вы также можете подумать об использовании тегов panelGrid и / или panelGroup вместо определения собственной HTML-таблицы. Это помогает для лучшего обслуживания.

0 голосов
/ 08 февраля 2010

Я не уверен , почему это так, поскольку я не очень часто использую тег f: param, но вы можете установить

<ice:inputText id="#{cid}" value="#{value}" required="true"/>

непосредственно. Это то, что я делаю, и это прекрасно работает.

...