您可以在数据表中设置一个属性,然后在选择的侦听器中读取它。为此,请使用
<f:attribute name="..."value="..."/>。从文档中:
约束条件
必须嵌套在
UIComponent自定义动作中。描述
找到最近的父
UIComponent自定义操作实例(…)。如果关联的组件已经具有使用该名称的组件属性,则不执行任何操作。否则,请isLiteralText()在参数上调用方法value。如果返回true,则将值存储在组件的属性Map中,并使用上面导出的名称。如果返回false,则Valueexpression使用上述Valueexpression派生的名称将其存储在组件的Map中。
因此,采用您尝试在注释中设置的属性,您应该像这样使用它:
XHTML:
<p:dataTable value="#{aObj.objList}" var="item" .... selectionMode="single"> <f:attribute name="test" value="abc" /> <p:ajax event="rowSelect" listener="#{aObj.viewItem}" /> ...</p:dataTable>听众:
public void viewItem(SelectEvent event) { String test = (String) event.getComponent().getAttributes().get("test"); // ...}


