2012-01-24 3 views
1

유효한 방법 : 하지 나는이 같은 구성을 정의한 표현

내가

<es:esUtilClosePanel varAction="#{rich:component('ESBankDeletePanel')}.hide();"/> 

이 객체에게 전화

<ui:composition xmlns="http://www.w3.org/1999/xhtml" 
      xmlns:h="http://java.sun.com/jsf/html" 
      xmlns:ui="http://java.sun.com/jsf/facelets" 
      xmlns:rich="http://richfaces.org/rich" 
      xmlns:composite="http://java.sun.com/jsf/composite"> 

<composite:interface> 
    <composite:attribute name="varAction" method-signature="java.lang.String action()" required="true" /> 
</composite:interface> 
<composite:implementation> 
    <h:outputLink value="#" 
        onclick="#{cc.attrs.varAction}" 
        styleClass="ES_popupClose"> 
     <h:graphicImage url="/resources/images/close_panel.png" title="#{mess.labelClose}"/> 
    </h:outputLink> 
</composite:implementation> 
나는 다음과 같은 오류 얻을 :

유효한 메서드가 아닙니다. # {rich : component ('ESBankDelet ePanel ')}. 숨기기();

누군가 나를 도울 수 있습니까?

답변

2

실제로 이것은 유효한 메서드 표현이 아닙니다. 메소드 표현식은 backing bean 조치 메소드를 호출하기위한 것입니다. UICommand 구성 요소의 action 특성에 사용되도록 의도되었습니다. 당신이 가진 것은 바로 가치 표현입니다. composite 속성 정의에서 method-signature을 제거하십시오. 이렇게하면 값 식으로 처리됩니다.

<composite:attribute name="varAction" required="true" /> 
+0

덕분에 많이, 지금은 환영합니다 – flavio

+1

괜찮습니다. 당신이 여기에서 새로 왔기 때문에 문제 해결에 도움이 될 때마다 대답을 표시하는 것을 잊지 마십시오. http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235를 참조하십시오. – BalusC