2012-01-24 71 views
1

我已經定義的組成是這樣的:不是有效的方法表達

<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> 

當我調用這個對象與

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

我收到以下錯誤:

不是有效的方法表達式:#{豐富:成分(「ESBankDelet ePanel')}隱藏();

有人可以幫助我嗎?

回答

2

這的確不是一個有效的方法表達。方法表達式用於調用支持bean操作方法。它intented要在UICommand組件action屬性使用。你在那裏只是一個價值表達。從複合屬性定義中刪除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

相關問題