Bonjour,
je suis entrain de developper une page qui me permet d'ajouter un nouveau employee.
cet employee a un cle etrangere avec privilege. donc il faut avoir une liste dans la page d'ajout d'un employee qui donne la liste des privilege afin de choisir une. j'ai fait le code source et normalement il est valide mais il m'affiche une erreur "java.lang.NullPointerException"
j'utilise netbeans 7.1.1 avec la framework jsf et ejb.
voici le code source de EmployeeMBean.java:
voici le code source de GestionnairePrivilege.java:
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 private Converter privilegeConverter = new Converter() { @Override public Object getAsObject(FacesContext context, UIComponent component, String value) { char code = value.charAt(0); Privilege pr = gestionnairePrivilege.getPrivilegeByCodePrivilege(code); return pr; } @Override public String getAsString(FacesContext context, UIComponent component, Object value) { Privilege pr = (Privilege) value; return pr.getCodePrivilege()+" : "+pr.getLibellePrivilege(); } }; public List<SelectItem> getAllPrivileges() { List<SelectItem> options = new ArrayList<SelectItem>(); List<Privilege> lpr = gestionnairePrivilege.getAllPrivilege(); for(Privilege pr : lpr) { options.add(new SelectItem(pr.getCodePrivilege()+" : "+pr.getLibellePrivilege())); } return options; } public Converter getPrivilegeConverter() { return privilegeConverter; }
voici le code de la page AjoutEmployee.xhtml:
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 package session; import entities.Privilege; import java.util.List; import javax.ejb.Stateless; import javax.ejb.LocalBean; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.persistence.Query; @Stateless @LocalBean public class GestionnairePrivilege { @PersistenceContext(unitName = "GMTTPU") private EntityManager emm; public List<Privilege> getAllPrivilege() { Query query = emm.createNamedQuery("Privilege.findAll"); return query.getResultList(); } public Privilege update(Privilege privilege) { return emm.merge(privilege); } public void create(Privilege privilege) { emm.persist(privilege); } public Privilege getPrivilegeByCodePrivilege(char code) { Query query = emm.createNamedQuery("EtatEmployee.findByCodeEtatEmployee"); query.setParameter("CodePrivilege", code); return (Privilege) query.getSingleResult(); } }
j'ai pas tout le code car c'est trop long
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <h:outputLabel value="PrivilegeEmployee:" for="privilegeEmployee" /> <h:selectOneMenu id="privilegeEmployee" value="#{employeeMBean.empM.emp.privilegeEmployee}"> <f:selectItems value="#{employeeMBean.allPrivileges}"/> </h:selectOneMenu>
merci de m'aider car je suis blocké danc cette etape depuis quelque jour
merci d'avance
Partager