2012-02-25 3 views
0

나는 간단한 testclass를 설정하고있다. 코드 이클립스 작품을 달성 횟수하지만 페이지를 시작할 수 없습니다 :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에서는 괄호 또는 "get"부분을 사용하지 않습니다.

대신 이것을 사용하십시오.

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

정말 이상합니다. getMyString() 메서드의 이름을 지정하면 testBean.getMyString()을 사용해야합니다. – membersound

+0

JSF는이 문제에 대한 이중성을 갖고 있습니다. 속성은 접근 자 메서드 이름이 아니라 속성 이름별로 액세스합니다. actionListener와 같은 리스너는 메서드 이름에 의해 지정됩니다. –

+2

이것은 JSF에만 국한되지 않습니다. 이것은 EL (및 Javabeans) 사양에만 해당됩니다. – BalusC

관련 문제