Не является допустимым выражением метода - PullRequest
1 голос
/ 24 января 2012

Я определил композицию, подобную этой:

<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();"/>

, я получаю следующую ошибку:

Не является допустимым выражением метода: # {rich: component ('ESBankDeletePanel')}. Hide ();

Может кто-нибудь мне помочь?

1 Ответ

2 голосов
/ 24 января 2012

Это действительно недопустимое выражение метода. Выражение метода предназначено для вызова метода действия базового компонента. Он предназначен для использования с атрибутом action компонентов UICommand. То, что у вас есть, это просто выражение ценности. Удалите method-signature из определения составного атрибута. Таким образом, оно будет рассматриваться как выражение значения.

<composite:attribute name="varAction" required="true" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...