JSF управляемый боб - PullRequest
       20

JSF управляемый боб

1 голос
/ 14 января 2011

Hy all,

Я новичок во всем этом, и, вероятно, это был бы глупый вопрос, но

У меня есть управляемый компонент, у которого есть свойство flower - String, иСписок свойств - букет

в xhtml У меня есть h: inputText, в котором вы должны ввести имя цветка, и когда вы нажимаете ах: командную кнопку, это вызывает действие # {managedBEan.addFlower}, в addFlower iхочу добавить имя цветка, набранное пользователем и добавленное в список --- я использую ах: form

, но кажется, что метод set для свойства не вызывается jsf, когда я нажимаю кнопку,свойство цветка имеет значение null, как будто она была объявлена ​​

спасибо за ваши предложения, Алекс

Ответы [ 3 ]

1 голос
/ 14 января 2011

Bean:

... myBean() {
   Flower flower;

   (...)

   public void addFlower() { }

   //getters and setters for Flower prop.
}

Xhtml

<h:inputText value="#{myBean.flower.name}"/>
<h:commandButton action="#{myBean.addFlower}" value="Click me!"/>

Это все, что вам нужно сделать. Экземпляр для цветка с get и set и h:inputText с именем цветка в свойстве "value".

Когда вы нажимаете кнопку, введенное значение будет помещено в свойство, указанное в значении, поэтому, если вы напечатаете flower.name (в методе addFlower), вы сможете увидеть пользовательский ввод.

actionListener тоже работает, но вам нужно проверить, какой импорт вы используете для ActionEvent. IDE всегда импортирует java.awt.event.ActionEvent, но правильный javax.faces.event.ActionEvent ... java.awt не работает, и я думаю, именно поэтому ваш метод не вызывается.

0 голосов
/ 15 января 2011

Тег окружает и вход, и кнопку?

<h:form>
    <h:inputText value="#{myBean.flower.name}"/>
    <h:commandButton action="#{myBean.addFlower}" value="Click me!"/>
</h:form>

В противном случае ввод не будет отправлен.

0 голосов
/ 14 января 2011

Вы должны объявить actionListener , например:

<h:commandButton actionListener="#{myBean.addFlower}" . . .

, и в вашем компоненте вы должны определить addFlower

   public void addFlower(ActionEvent ev)

, который выполняет задание.

...