2012-02-25 2 views
0

Я просто настраиваю простой тестовый класс. Код заканчивания работы в затмении, но я не могу запустить страницу:ServletException - свойство не найдено? Что здесь не так?

бэк боб:

@Named 
@RequestScoped 
public class TestBean { 

    public String getString() { 
     return "click me"; 
    } 
} 

JSF:

<h:commandButton value="#{testBean.getString()}" /> 

также попытался testBean.string и testBean.getString.

исключение:

javax.servlet.ServletException: input.xhtml @41,52 value="#{testBean.getString()}": 
The class 'TestBean$Proxy$_$$_WeldClientProxy' does not have the property 'getString'. 

Что здесь не так ??

ответ

1

В JSF вы не используете круглые скобки или «получить» часть имени.

Используйте это вместо этого.

<h:commandButton value="#{testBean.string}" /> 
+0

Это действительно странно. Если я назову метод getMyString(), тогда я должен использовать testBean.getMyString(). – membersound

+0

JSF имеет двойственность мышления по этому вопросу. Доступ к свойствам осуществляется по имени свойства, а не по имени метода доступа. Слушатели, такие как actionListener, указываются по имени метода. –

+2

Это не относится к JSF. Это характерно для спецификации EL (и Javabeans). – BalusC

Смежные вопросы