我有3个表,用户,用户组和组。我希望实现以下功能:当我在我的组数据表中选择一个不同的组时,用户数据表将刷新并更新用户列表。如何刷新数据表以从数据库检索新列表
例如, -
Groups
1. Management
2. HR
3. Support
User
1. John
2. Tom
3. Mary
我从组中选择管理,我从用户选择约翰,并将它们添加到群组出现以下情况:
Groups
1. Management
2. HR
3. Support
User
2. Tom
3. Mary
UserGroups
Management, John
我重复这个过程汤姆添加到管理:
组
1. Management
2. HR
3. Support
User
3. Mary
UserGroups
Management, John
Management, Tom
现在,当我选择一个新的组,HR,用户表刷新:
个组
1. Management
2. HR
3. Support
用户
1. John
2. Tom
3. Mary
UserGroups
Management, John
Management, Tom
基本上,当我选择一个组,在用户数据表将显示用户在NOT部。
这里是我的JSF代码:
<p:dataTable var="users" value="#{usuariousGruposBean.listOfUsuarios}" selection="#{users}" selectionMode="single">
<p:column headerText="" style="height:0" rendered ="false">
<h:outputText value="#{users.id_usuario}"/>
</p:column>
<p:column headerText="Usuarios" style="height:50">
<h:outputText value="#{users.nome}"/>
</p:column>
<p:column>
<h:commandLink value ="selection" action="#{usuariousGruposBean.selectionOfUserObject}" >
<f:setPropertyActionListener target="#{usuariousGruposBean.user}" value="#{users}"/>
</h:commandLink>
</p:column>
</p:dataTable>
我现在有从我的数据库中检索用户的列表两种方法:
public List<Usuarious> getListOfUsuarios() throws DAOExceptions {
List<Usuarious> usuariosList = userDAO.list();
listOfUsuarios = usuariosList;
return listOfUsuarios;
}
public List<Usuarious> getNewListUsers() throws DAOExceptions {
if(listOfUsuarios ==null) {
List<Usuarious> userList =userDAO.listAll();
refreshListUsuarios = userList;
}
return refreshListUsuarios;
}
我想刷新我{usuariousGruposBean.listOfUsuarios}
。只有当我手动交换listOfUsuarios
,{usuariousGruposBean.refreshListUsuarios}
时,才可以刷新我的用户数据表中的用户列表。
我的问题是..如何自动执行此功能?我希望刷新列表,并在我的示例中显示以下输出。这甚至有可能吗?
我正在使用primefaces,jsf和java。
我不明白:你想已经有部门相关的用户显示,或不?我看到它的方式,已经来自部门的用户不应该在那里显示!请解释。 – spauny
好吧,部门中的用户不会显示在用户表中,但会在选中新组时显示。我与具有UserGroups的用户和组具有多对多关系作为两者之间的关联实体。所以,当选择一个新的组时,将再次检索一个新的用户列表。发生以下情况(管理,汤姆),(人力资源,汤姆) – ShaunK