Bonjour
J'ai un converter dans un selectOneMenu
voici le converter
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <p:remoteCommand name="setTab_#{ss.level}" action="#{planMediaControllerInternet.affecterLigneCalcul(ss)}"/> <p:selectOneMenu id="supportForRegieInternet" value="#{ss.supportInternet}" converter="supportInternetConverter" onkeydown="setTab_#{ss.level}" onchange="setTab_#{ss.level}" > <f:selectItem itemLabel="-----" /> <f:selectItems value="#{planMediaControllerInternet.lstSupportForFournisseurItem()}" /> <p:ajax event="valueChange" listener="#{planMediaControllerInternet.affecterLigneCalcul(ss)}" update="typePW,nbVisU,classAx,prestationForSupportInternet,supportForRegieInternet"/> </p:selectOneMenu>
mon problème est que dans le code de selectOneMenu la méthode de getAsObject du converter est appelée avant la méthode affecterLigneCalcul. Comment faire pour que l'appel soit fait premièrement par la méthode affecterLigneCalcul.
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 @FacesConverter(value="supportInternetConverter") @RequestScoped public class SupportInternetConverter implements Converter{ @Inject RegieController regieController; @Inject SessionController sessionController; @Inject PlanMediaControllerInternet planMediaControllerInternet; @Override public Object getAsObject(FacesContext context, UIComponent component, String value) { PlanMediaInternetLigneCalcul pmilc = planMediaControllerInternet.getPlanMediaInternetLigneCalculSelected(); RegieInternet regieInternet = pmilc.getRegieInternet(); if (regieInternet != null) { for(SupportInternet r : regieInternet.getLstSupportInternet()) { if(r.getNameSupport().equals(value)){ return r; } } } return null; } @Override public String getAsString(FacesContext context, UIComponent component, Object value) { if(value != null){ SupportInternet r = (SupportInternet)value; return r.getNameSupport(); } return ""; }
Merci
Partager