2013-07-02 6 views
1

나는이 구성 요소가 있습니다JSF 컴포넌트에서 EL 표현식을 사용하여 매개 변수를 백업 빈에 전달하는 방법은 무엇입니까?

<t:outputText value="#{bean.name}"> 

내가 대신 게터를 호출 EL 식의 매개 변수와 방법 를 호출 할을하지만 JSF 2.0이 없습니다.

EL 표현식을 JSF 2.0없이 사용하여 백업 빈의 메소드에 매개 변수를 전달하는 방법은 무엇입니까? 즉

, 나는 이런 식으로 뭔가를 할 :

<t:outputText value="#{bean.findName(#{bean.name})}"> 

외부 표현 : 후원 콩의 매개 변수와 메소드를 호출합니다.

내부 표현식 : 메소드에서 매개 변수로 사용할 getter를 호출합니다.

후원 콩에있어서 앞서

public String findName(String name){ 


} 

감사합니다! :)

+0

[EL에서 직접 매개 변수 또는 매개 변수를 사용하여 직접 메소드 또는 메소드 호출] (http://stackoverflow.com/questions/3284236/invoke-direct-methods-or-methods-with-arguments-variables- parameters-in-jsf) – BalusC

+1

모두 주목하지 못하는 것 같습니다 : 기능은 JSF 2.0에만 한정되지 않고 EL 2.2에만 해당됩니다. – BalusC

답변

0

메소드 매개 변수는 EL 2.2의 기능이므로 해당 JAR을 다운로드하여 프로젝트에 추가해야합니다. 당신은 메이븐을 사용하는 경우 그 다음

<context-param> 
    <param-name>com.sun.faces.expressionFactory</param-name> 
    <param-value>com.sun.el.ExpressionFactoryImpl</param-value> 
</context-param> 

편집

의 web.xml에 다음을 추가 링크

https://uel.java.net/download.html

로 이동 (또는 중앙 받는다는 직진)

다음은 귀하의 의견입니다. 이런 식으로 할 수 있습니다. 이

private Integer id; //Make setter and getter 
private String name; //Make setter and getter for this. 

private Integer setId(Integer id) { //Make a getter also 
    name = findName(id); // <--- Set the name property there 
} 

public String findName(Integer id) { 

    return name found in db; 

} 

이 같은

<h:inputText value="#{bean.id}"> <---This one will set the id 
<h:outputText value="#{bean.name}"> <--- This one will display the name 

하고 정의하는 방법은 단지 생각입니다.

+0

이전 응용 프로그램 서버를 사용할 때 JBoss EL을 설치해야 할 수도 있습니다. http://stackoverflow.com/a/3284328/1713801을 참조하십시오. – alterfox

+0

@alterfox 감사합니다. – Andy