Я плохо знаком с JSF и управляемыми компонентами. У меня есть управляемый компонент с некоторой частной собственностью с общедоступным методом set и Методами получателя. Теперь, когда я добавляю свойства управляемого компонента к формам JSF, я должен добавить закрытые методы непосредственно, или я должен использовать, называют свойство Методами получателя?
Например:
<h:inputText value="#{BeanName.userName}"/>
<h:inputText value="#{BeanName.getUserName()}"/>
Какой корректен в вышеупомянутом?
Предполагая, что вы используете JBoss EL или EL 2.2+, оба способа будут работать нормально в начальном отображении. Но первый способ на самом деле более правильный, потому что второй будет только получать
значение, но никогда не устанавливать
значение. Если вы хотите собирать входные значения, всегда выбирайте первый способ. Тогда EL (Expression Language) будет автоматически находить методы getUserName()
и setUserName()
, когда это необходимо.
Второй способ никогда не будет работать, если вы используете стандартную реализацию JSF EL, поскольку она не поддерживает прямые вызовы методов.
Чтобы узнать больше о JSF, начните с нашей вики-страницы JSF.
номер 1 верен сверху, это приватное поле, которое вы подключаете, если вы используете EL с JSF в вашей форме.
Вам все еще нужны getter и setter, которые управляемый боб вызывает для получения значений, чтобы вы могли сохранить их в базе данных ....etc
.Если в вашем java классе есть что-то вроде
....
private String coolStuff;
public String getCoolStuff() {
return coolStuff;
}
....
То в вашей jsf странице вы обращаетесь к нему так:
#{myBackingBean.coolStuff}
Фреймворк автоматически ищет метод под названием getCoolStuff()
Надеюсь это поможет