0

我正在使用 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}"
    ...

所以想象一下,我有一个 .xhtml 用于发票,一个用于支付现金,一个用于销售税等,每个 .xhtml 都是相同的,除了支持 bean 中的属性以及 ID 和变量名。因此,如果我对上面的片段进行泛化,WHAT_DO_I_REPLACE_THIS_WITH 使其工作?

<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]}"
    ...

因此,如果此代码包含在 editableTable.xhtml 中并且我按如下方式使用它:

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

所以基本上我在问,如何从 rowId 而不是字符串“invoice”获取可变发票?在 JSF 或 PrimeFaces 中是否有 eval() 函数?我可以做类似 eval(rowId)[rowKey] 的事情吗?

请原谅我没有很好地表达我的问题,我是 JSF/Primefaces 新手,不知道术语。

提前致谢。

4

0 回答 0