Передача действия составных компонентов JSF2.0 - PullRequest
0 голосов
/ 06 января 2012

Я делаю свой собственный составной компонент, и мне нужно передать действие в качестве параметра. Я нашел несколько решений этой проблемы (даже здесь, из-за переполнения стека), но моя проблема немного отличается.

Я не могу использовать атрибут целевого тега атрибута cc: потому что я выводю список (может быть (и будет) много целей ...). Есть ли способ, как нацелить все ссылки на команды?

Спасибо.

<!-- INTERFACE -->
<cc:interface>
    <cc:attribute name="list" required="true" />
    <cc:attribute name="action" required="true"/>
</cc:interface>

<!-- IMPLEMENTATION -->
<cc:implementation>
    <h:panelGroup layout="block" rendered="#{not empty cc.attrs.list}">
        <ul>
            <ui:repeat var="c" value="#{cc.attrs.list}">
                <li>
                    <ice:form prependId="false">
                        <h:commandLink id="view" action="#{cc.attrs.action}" value="#{translationBean.translate(c, facesContext.externalContext.requestLocale.language)}" style="font-weight:bold;">
                            <f:param name="iri" value="#{c}" />
                        </h:commandLink>
                    </ice:form>
                </li>  
            </ui:repeat>
        </ul>      

    </h:panelGroup>
</cc:implementation>

С этим кодом я получаю:

java.lang.String cannot be cast to javax.el.ValueExpression

Атрибут Target работает, только если у меня есть только одна ссылка вне цикла ...


EDIT:

Так я называю компонент

  <mondis:itemList list="#{objectBean.object.subObjects}" action="object"/>

Объект является результатом (вид на который должен быть перенаправлен экран)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...