如何在JSF复合组件上附加ajax事件?

时间:2014-09-02 13:58:31

标签: ajax jsf jsf-2 composite-component

我正在尝试实现一个包含事件的复合组件(util:compList)(例如行选择事件),并且此事件在复合的使用页面中触发一个操作。

复合代码(compList):

<composite:interface>
    <composite:attribute name="list" required="true" type="java.util.Collection" />
    <composite:attribute name="onselect" method-signature="void select(org.primefaces.event.SelectEvent)" />
    <composite:attribute name="update" />
</composite:interface>

<composite:implementation>
    <ui:param name="hasSelectBehavior" value="#{not empty cc.attrs.onselect}" />                
    <h:form>
        <p:dataTable ...>
            <p:ajax event="rowSelect" 
                    listener="#{cc.attrs.onselect}"
                    update="#{cc.attrs.update}" />
            <p:column>
               Some content here
            </p:column>
        </p:dataTable>
    </h:form>
</composite:implementation>

使用页面代码:

<util:compList list="#{bean.myList}" 
               selectvalue="#{bean.myEvent}" 
               update=":myFormId, :myFormId:myOtherFormComponent" />

抛出异常:

  

找不到带有“processTab:j​​_idt159:myFormId:j_idt161:j_idt162:userNotesTable”引用的表达式“myFormId”的组件。

我知道异常是指复合组件无法找到我正在尝试重新渲染的组件ID这一事实。有没有其他方法可以正确地做到这一点?

0 个答案:

没有答案