Bonjour,
J'ai une appli basique avec un formulaire.
Je voudrais simplement insérer le prenom et le nom de la personne (qu'elle a saisit dans le formulaire) dans la BDD. (Sans passer par jsf, j'ai pu faire fonctionner hibernate avec un autre exemple)
Voici le récapitulatif après saisit du formulaire (cliquer sur confirmer pour insérer en base) - j'ai viré le superflux:
voici la fonction appelée par le clique sur "confirmer" dans la classe UserBean:
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 <h:form> <h2> Confirmation inscription </h2> <h4> Confirmation d'inscription </h4> <table> <tr> <td>Prénom: </td> <td> <h:outputText value="#{UserBean.prenom}"/> </td> </tr> <tr> <td>Nom:</td> <td> <h:outputText value="#{UserBean.nom}"/> </td> </tr> <tr> <td>Sexe:</td> <td> <h:outputText value="#{UserBean.genre}"/> </td> </tr> </table> <p><h:commandButton value="Editer" action="revise"/> <h:commandButton value="Confirmer" action="#{UserBean.ajoutUtilisateurConfirme}" />
La fonction d'ajout de User:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public void ajoutUtilisateurConfirme(){ System.out.println("Prenom =" + this.getPrenom()); System.out.println("Nom = " + this.getNom()); AjoutUser p = new AjoutUser(this); }
Et voici mon facesconfig, mais il n'y a qu'un bean UserBean:
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 public AjoutUser(UserBean usr){ createUser(usr); } private static void createUser(UserBean usr) { Transaction tx = null; Session session = SessionFactoryUtil.getInstance().getCurrentSession(); try { tx = session.beginTransaction(); session.save(usr); tx.commit(); } catch (RuntimeException e) { if (tx != null && tx.isActive()) { try { // Second try catch as the rollback could fail as well tx.rollback(); } catch (HibernateException e1) { System.out.println("Error rolling back transaction"); } // throw again the first exception throw e; } } }
Merci d'avance...
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 <managed-bean> <managed-bean-name>UserBean</managed-bean-name> <managed-bean-class>com.ben.jsf.UserBean</managed-bean-class> <managed-bean-scope>session</managed-bean-scope> </managed-bean> <navigation-rule> <from-view-id>/main.jsp</from-view-id> <navigation-case> <from-outcome>register</from-outcome> <to-view-id>/register.jsp</to-view-id> </navigation-case> </navigation-rule> <navigation-rule> <from-view-id>/register.jsp</from-view-id> <navigation-case> <from-outcome>register</from-outcome> <to-view-id>/confirm.jsp</to-view-id> </navigation-case> </navigation-rule>
Je me dis qu'il y a peut être un incompatibilité entre jsf et hibernate...
au moment ou il récupère la session?
J'espère que quelqu'un aura la réponse.
Merci davance.
Partager