Bonjour,
Je vous expose le challenge. J'ai des utilisateurs qui peuvent avoir plusieurs roles. Je souhaite dans une page d'administration pouvoir ajouter/enlever des roles en une fois grace à des checkbox et un seul bouton submit.
Je vous donne mon code
Un immmense merci d'avance !
Quartus
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 <h:dataTable binding="#{userController.roleTable}" value="#{roleController.roles}" var="role"> <h:column> <f:facet name="header"> <h:outputText value="Role Number"/> </f:facet> <h:outputText value="#{role.roleNo}"/> </h:column> <h:column> <f:facet name="header"> <h:outputText value="Role Description"/> </f:facet> <h:outputText value="#{role.roleDescription}"/> </h:column> <h:column> <f:facet name="header"> <h:outputText value="Sender Number"/> </f:facet> <h:outputText value="#{role.senderNo}"/> </h:column> <h:column> <f:facet name="header"> <h:outputText value="Sender Number"/> </f:facet> <h:selectBooleanCheckbox value="#{userController.flag}"/> </h:column> </h:dataTable> <h:commandButton value="Update" action="#{userController.updateRoles}"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108 @ManagedBean(name="userController") public class UserController { @EJB private UserEJB userEJB; private User user = new User(); private List<User> userList = new ArrayList<User>(); private DataModel<User> users; private boolean flag; private UIData roleTable; @PostConstruct public void construct() { init(); } public void init() { userList = userEJB.findUsers(); users = new ListDataModel<User>(userList); } public void validateCreateUser(FacesContext context, UIComponent component, Object user)throws ValidatorException { String userNo = user.toString(); if(!(userEJB.findUsersByUserNo(userNo)==null)) throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "user", "The user already exists")); } public String doCreateUser(){ user.setActive(0); user.setPassword("***"); user.setAuditUserNo("E131631"); user = userEJB.createUser(user); userList.add(user); users = new ListDataModel<User>(userList); return "newUser.xhtml"; } public String doResetUser(){ user = users.getRowData(); user.setActive(0); userEJB.updateUser(user); userList.set(userList.indexOf(user), user); users = new ListDataModel<User>(userList); return "listUsers.xhtml"; } public String doReadUser(){ user = users.getRowData(); return "editUser.xhtml"; } public String doDeleteUser(){ user = users.getRowData(); userEJB.deleteUser(user); userList.remove(user); users = new ListDataModel<User>(userList); return "listUsers.xhtml"; } public User getUser() { return user; } public void setUser(User user) { this.user = user; } public List<User> getUserList() { return userList; } public void setUserList(List<User> userList) { this.userList = userList; } public DataModel<User> getUsers() { return users; } public void setUsers(DataModel<User> users) { this.users = users; } public boolean isFlag() { Role role = (Role)roleTable.getRowData(); System.out.println(role.getRoleDescription()); return userEJB.doesUserHaveRole(user, role); } public void setFlag(boolean flag) { this.flag = flag; } public UIData getRoleTable() { return roleTable; } public void setRoleTable(UIData roleTable) { this.roleTable = roleTable; } public String updateRoles() { return "to be implemented"; } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80 @ManagedBean(name="roleController") @RequestScoped public class RoleController { @EJB private RoleEJB roleEJB; @EJB private UserEJB userEJB; private Role role = new Role(); private List<Role> roleList = new ArrayList<Role>(); private DataModel<Role> roles; @PostConstruct public void construct() { init(); } public void init() { roleList = roleEJB.findRoles(); roles = new ListDataModel<Role>(roleList); } public String doReadRole(){ role = roles.getRowData(); return "editRole.xhtml"; } public String doEditRole(){ role = roles.getRowData(); roleEJB.updateRole(role); roleList.set(roleList.indexOf(role), role); roles = new ListDataModel<Role>(roleList); return "listRoles.xhtml"; } public String doCreateRole(){ role.setRoleType(2); role.setUserNo(userEJB.findUsersByUserNo("E2BADMIN")); role.setRoleNo(roleEJB.getMaxRoleNo()+1); role = roleEJB.createRole(role); roleList.add(role); roles = new ListDataModel<Role>(roleList); return "listRoles.xhtml"; } public String doDeleteRole(){ role = roles.getRowData(); roleEJB.deleteRole(role); roleList.remove(role); roles = new ListDataModel<Role>(roleList); return "listRoles.xhtml"; } public Role getRole() { return role; } public void setRole(Role role) { this.role = role; } public List<Role> getRoleList() { return roleList; } public void setRoleList(List<Role> roleList) { this.roleList = roleList; } public DataModel<Role> getRoles() { return roles; } public void setRoles(DataModel<Role> roles) { this.roles = roles; } }
Partager