JSF2.0复合组件动作传递

时间:2012-01-06 11:12:33

标签: java jsf jsf-2 composite-component

我正在创建自己的复合组件,我需要将操作作为参数传递。我已经找到了几个解决这个问题的方法(即使在这里堆栈溢出),但我的问题有点不同。

我不能使用cc:attribute的目标标签属性,因为我输出的是一个列表(可能会(并且会有)很多目标......)。有什么办法,如何定位所有命令链接?

感谢。

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

只有在循环外只有一个链接时,目标属性才有效...


编辑:

这就是我调用组件的方式

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

该对象是一个结果(视图应该是屏幕重定向)

0 个答案:

没有答案