update de tout un formulaire
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:
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:
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:
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;
}
} |