IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JSF Java Discussion :

update de tout un formulaire


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 102
    Par défaut 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 : 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;
        }
     
    }

  2. #2
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 102
    Par défaut
    Je me rends compte de plus que ceci n'est pas bon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public boolean isFlag() {
            Role role = (Role)roleTable.getRowData();
            System.out.println(role.getRoleDescription());
            return userEJB.doesUserHaveRole(user, role);
        }
    Car j'écrase a chaque fois l'update du formulaire... si qqn a une idée...

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 102
    Par défaut
    Encore une fois, je m'étonne de ma bétise. J'ai résolu le problème en encapsulant le formulaire dans une liste d'objets.

    C'est plus propre, plus maintenable, et surtout cela fonctionne !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. changer couleur fond de tout les formulaires
    Par alex77140 dans le forum IHM
    Réponses: 10
    Dernier message: 01/11/2008, 08h36
  2. [MySQL] Update à partir d'un formulaire
    Par GhostShell dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 05/09/2008, 23h34
  3. Test sur tout un formulaire
    Par gangsterus dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 05/09/2008, 09h08
  4. Réponses: 3
    Dernier message: 01/02/2008, 13h29
  5. [Debutant] faire un update sur tout une table
    Par Karibou dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 27/07/2005, 14h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo