Когда вы пишете #{myBean.salute}
, JSF ищет свойство salute
. В коде Java он «переводится» на myBean.getSalute();
. Другими словами, вы должны предоставить средство получения для этого свойства (и, в конечном счете, средство установки, если это свойство может быть изменено JSF, когда оно используется, например, в поле ввода).
Когда вы пишете #{myBean.salute()}
, вы имеете в виду метод salute()
.
Правило довольно простое: используйте метод, когда вы хотите выполнить действие (то есть, как правило, оно будет определено внутри атрибута action
или actionListener
). В остальных случаях используйте собственность.
В вашем примере вы хотите отобразить некоторый текст на своей странице, поэтому вместо вызова #{myBean.salute()}
просто позвоните #{myBean.salute}
.
Во втором пункте попробуйте изменить свой код для доступа к свойству something
вместо метода:
<!-- Using a method from an injected bean-->
#{bba.b.something}
и BeanB
код:
public String getSomething() {
System.out.println("Hello!!!");
return "I am a SessionScopped Backing Bean, my name is 'B' and i am doing something";
}
Что касается вашего последнего замечания, я думаю, что ваш Eclipse просто не поддерживает синтаксис EL 2.0.