Bonjour,
J'ai un petit soucis de converter avec un composant selectOneMenu, je ne comprends pas, car je pense que tout est correct (evidement ca ne l'est pas si je choppe une erreur) mais apparement une erreur m'échappe.
Le code de mon selectOneMenu
{taskBean.task.status[key]} correspond à une map <Quarter, TaskStatus>, donc il est nécessaire de renvoyer un type "TaskStatus" (key reprensente "Quarter").
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <h:selectOneMenu id="statusForm" converter="StatusConverter" value="#{taskBean.task.status[key]}" <f:selectItems value="#{selectList.statusTask2}" /></h:selectOneMenu>
Voici le converter:
ServiceUtil.getTaskStatusService().getTaskStatus(Long.valueOf(str)) va chercher dans ma db l'enregistrement correspondant au numéro envoyé.
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 /** * @see javax.faces.convert.Converter#getAsString(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object) */ public String getAsString(FacesContext facesContext, UIComponent uIComponent, Object obj) { if (obj == null) { return null; } if (obj.getClass().equals(TaskStatus.class)) { TaskStatus status = (TaskStatus) obj; return String.valueOf(status.getId()); } return null; } /** * @see javax.faces.convert.Converter#getAsObject(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.String) */ public Object getAsObject(FacesContext facesContext, UIComponent uIComponent, String str) { if (str == null) { return null; } return ServiceUtil.getTaskStatusService().getTaskStatus(Long.valueOf(str)); }
Voici le code qui rempli mes items:
Je ne vois pas trop ou ca coince, si quelqu'un a une petite idée ce serait vrmnt génial!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 /** * Return the task status list. * * @return statusTask */ public List<SelectItem> getStatusTask2() { List<TaskStatus> taskStatus = ServiceUtil.getTaskStatusService().findListTaskStatus(); List<SelectItem> statusItems = new ArrayList<SelectItem>(); for (TaskStatus tStatus : taskStatus) { String tmp = tStatus.getStatusFr(); statusItems.add(new SelectItem(tStatus, tmp)); } return statusItems; }
Mercii d'avance
Partager