Jsf 如何使ui:composition中的p:dataTable更加可重用?

Jsf 如何使ui:composition中的p:dataTable更加可重用?,jsf,primefaces,facelets,el,Jsf,Primefaces,Facelets,El,我使用的是PrimeFaces 3.4,我有一系列的.xhtml用于页面上的数据表。我希望对页面上的所有表使用一个.xhtml,并在为每种数据表包含该.xhtml时使用ui:param。如果我有以下代码片段: <p:dataTable id="invoiceTable" emptyMessage="Pick a category from the drop down" rows="10" var="invoice" value="#{editorUIBean.invoices}"

我使用的是PrimeFaces 3.4,我有一系列的.xhtml用于页面上的数据表。我希望对页面上的所有表使用一个.xhtml,并在为每种数据表包含该.xhtml时使用ui:param。如果我有以下代码片段:

<p:dataTable id="invoiceTable" emptyMessage="Pick a category from the drop down" 
    rows="10" var="invoice" value="#{editorUIBean.invoices}" scrollable="true"
    scrollHeight="180" editable="true" rowKey="#{invoice.seqId}"
    ...

请不要使用
[服务器端包含]
标记。那是完全不同的事情。至于您的具体问题,您的include文件将在
var
上失败,这不允许EL。你是怎么走到这一步的?你有没有想过用通常的方式硬编码
var
?这将立即解决您当前的问题。谢谢,因为var的作用域是dataTable,所以我能够为每个include使用相同的var名称,现在可以工作了,谢谢
<p:dataTable id="#{tableId}" emptyMessage="#{emptyMessage}" rows="10" var="#{rowId}"
    value="#{editorUIBean[dataProperty]}" scrollable="true" scrollHeight="180"
    editable="true" rowKey="#{WHAT_DO_I_REPLACE_THIS_WITH[rowKey]}"
    ...
...
<ui:include src="editableTable.xhtml">
    <ui:param name="tableId" value="invoiceId"/>
    <ui:param name="emptyMessage" value="Pick a category from the drop down"/>
    <ui:param name="rowId" value="invoice"/>
    <ui:param name="dataProperty" value="invoices"/>
    <ui:param name="rowKey" value="seqId"/>
    ...
</ui:include>
....