Bonjour tout le monde,
j'ai mit en place un selectOneMenu contenant une liste d'objets variés (2 objets differents)
Lorsque je valide mon formulaire je retrouve bien la valeur désiré dans ma base, cependant lorsque je veux restituer cette valeur dans un selectOneMenu il me met pas la bonne valeur
Mon converter :
Ma page jsp
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 public Object getAsObject(FacesContext context, UIComponent component, String value) { if (context == null || component == null) throw new NullPointerException(); if (value == null) return null; value = value.trim(); if (value.length() < 1) return null; PublicFacade publicFacade = ServiceLocator.getLocator().getPublicFacade(); try{ if(value.substring(0,1).equals("R")){ Integer idressource = Integer.parseInt(value.substring(1)); return publicFacade.ressourceFindByPrimaryKey(idressource); }else if(value.substring(0,1).equals("U")){ Integer idunitetravail = Integer.parseInt(value.substring(1)); return publicFacade.uniteTravailFindByPrimaryKey(idunitetravail); }else return null; }catch(Exception e){ e.getCause().getMessage(); return null; } } public String getAsString(FacesContext context, UIComponent component, Object value) { if (context == null || component == null) throw new NullPointerException(); if (value == null) return ""; if (value instanceof String) return (String) value; try { if(value.getClass().equals(UniteTravail.class)){ UniteTravail utr = (UniteTravail)value; return String.valueOf("U"+utr.getIdunitetravail()); }else if(value.getClass().equals(Ressource.class)){ Ressource utr = (Ressource)value; return String.valueOf("R"+utr.getIdressource()); } return ""; } catch (Exception e) { throw new ConverterException(Util .getExceptionMessage(Util.CONVERSION_ERROR_MESSAGE_ID)); } }
ma variable dans le bean :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <h:selectOneMenu id="uniteTravrailRessource" styleClass="SELECT" onfocus="onFocus(this);" onblur="onBlur(this);" required="true" tabindex="18" value="#{beanController.objetUTR}" converter="uniteTravailRessourceConverter"> <f:selectItem itemLabel="-- Sélectionnez l'affectation --" itemValue="" /> <f:selectItems value="#{referenceDataBean.allUniteTravailRessourceItems}" /> </h:selectOneMenu>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 private Object objetUTR = null; public Object getObjetUTR() { return objetUTR; } public void setObjetUTR(Object objetUTR) { this.objetUTR = objetUTR; }
Merci d'avance pour votre aide
Partager