selectOneMenu composé de 2 objets
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 :
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
| 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 page jsp
Code:
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> |
ma variable dans le bean :
Code:
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