我正在使用 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 新手,不知道术语。
提前致谢。