Как правильно связать входное значение со свойством управляемого компонента JSF? - PullRequest
5 голосов
/ 24 июня 2010

Я новичок в JSF и управляемых бобах.У меня есть управляемый bean-компонент с частной собственностью с общедоступными методами setter и getter.Теперь, когда я добавляю свойства управляемого компонента в формы JSF, должен ли я добавлять частные методы напрямую или я должен использовать вызов свойства методами Getter?

Например:

  1. <h:inputText value="#{BeanName.userName}"/>
  2. <h:inputText value="#{BeanName.getUserName()}"/>

Какой из них верен выше?

Ответы [ 3 ]

6 голосов
/ 24 июня 2010

Предполагая, что вы используете JBoss EL или EL 2.2+, оба варианта будут хорошо работать на начальном экране. Но первый на самом деле более правильный, потому что второй будет только get значение, но никогда set значение. Если вы хотите собрать входные значения, вы всегда должны идти первым путем. EL (язык выражений) будет автоматически определять методы getUserName() и setUserName() при необходимости.

Второй способ никогда не будет работать, когда вы используете стандартную реализацию JSF EL, поскольку он не поддерживает прямые вызовы методов.

Чтобы узнать больше о JSF, начните с на нашей вики-странице JSF .

1 голос
/ 24 июня 2010

Если в вашем Java-классе у вас есть что-то вроде

....
private String coolStuff;

public String getCoolStuff() {
    return coolStuff;
}
....

Тогда на вашей странице jsf вы получаете к нему следующий доступ:

#{myBackingBean.coolStuff}

Фреймворк автоматически ищет метод с именем getCoolStuff()

Надеюсь, что поможет

0 голосов
/ 25 июня 2010

номер 1 является верным сверху, это частное поле, которое вы подключаете, если вы используете EL в форме JSF.

Вам все еще нужны методы получения и установки, которые вызывает управляемый компонент, чтобы получить значения, чтобы вы могли сохранить их в базе данных .... и т. Д.

...