2012-02-25 11 views
0

私は単純なテストクラスを設定しています。コードは日食で作品を、完了が、私はページを起動することはできません:Beanをバックアップ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

関連する問題