好吧,我开始使用Composite JSF 2.0,我遇到了以下问题。
这是我的复合词:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui"
xmlns:composite="http://java.sun.com/jsf/composite">
<composite:interface>
</composite:interface>
<composite:implementation>
<p:ajax event="rowSelect" update="@form" />
<p:ajax event="rowUnselect" update="@form" />
</composite:implementation>
</html>
我正试图以这种方式使用这种复合材料:
<p:dataTable rowKey="#{cartao.id}" var="cartao"
value="#{cartaoCreditoMB.beans}" paginator="true"
emptyMessage="Não foi encontrado nenhum registro" rows="10"
id="dataTableCartoesCredito" selection="#{cartaoCreditoMB.bean}"
selectionMode="single">
<application:rowSelectUnSelect />
</p:dataTable>
但是我收到了以下错误:
/resources/application/rowSelectUnSelect.xhtml @14,45 <p:ajax> Unable to attach <p:ajax> to non-ClientBehaviorHolder parent
答案 0 :(得分:1)
这两行:
<p:ajax event="rowSelect" update="@form" />
<p:ajax event="rowUnselect" update="@form" />
必须嵌套在实现ClientBehaviourHolder接口的组件中。
可能需要将<p:ajax>
嵌套在<p:dataTable>
内:
<p:dataTable ...>
<p:ajax ... />
...
</p:dataTable>
因为DataTable类确实实现了ClientBehaviourInterface
。