我想用最后检查过的数据库的角色填充数据表的角色。我该如何实现呢?
public class Database implements Serializable {
private List<Role> roles;
private String name;
private boolean selected;
...
}
public class Role implements Serializable {
private String name;
...
}
data.xhtml 看起来像这样
...
<p:dataTable id="databases" var="database" value="#{dataBean.databases}" >
<p:column>
<p:selectBooleanCheckbox value="#{database.selected}">
<p:ajax update="roles, databases" immediate="true" />
</p:selectBooleanCheckbox>
</p:column>
<p:column headerText="Databases">
<h:outputText value="#{database.name}" />
</p:column>
</p:dataTable>
<p:dataTable id="roles" var="role" value="#{dataBean.roles}" >
<p:column headerText="Roles">
<h:outputText value="#{role.name}" />
</p:column>
</p:dataTable>
答案 0 :(得分:1)
<强> data.xhtml 强>
<p:dataTable id="databases" var="database" value="#{dataBean.databases}" >
<p:selectBooleanCheckbox value="#{database.selected}">
<f:ajax execute="@this" listener="#{dataBean.updateRoles}" />
<f:attribute name="selRec" value="#{database}" />
</p:selectBooleanCheckbox>
databean
...
public void updateRoles(AjaxBehaviorEvent event) {
//database is theobject in the current row
Database database = (Database) event.getComponent().getAttributes().get("selRec");
}
...