Bonjour,
voilà j'ai un formulaire contenant un input et un selectOneMenu avec un bouton valider.
Voici mon problème: au départ l'affichage de page est correct. Dans les champs il y a bien les valeurs par defaut. Si je modifie mon input et mon selectOneMenu lorsque j'apuuie sur le bouton valider, ma fonction s'exécute mais avec les valeurs par défaut et non les nouvelles.
voici mon code jsp:
voici mon code 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 <h:form id="formUpdateContract"> <div class="formCadre"> <h:messages layout="table" styleClass="errorMsg"/> <h:panelGrid columns="2"> <h:panelGroup> <h:outputText value="#{bundle.createContract_label}" styleClass="#{UpdateContract.isValidLabel ? '' : 'errorMsg'}"/> <font class="errorMsg">*</font> </h:panelGroup> <h:inputText maxlength="25" value="#{UpdateContract.label}"/> <h:outputText value="#{bundle.createContract_gateway}"/> <h:selectOneMenu value="#{UpdateContract.gatewaySelected}"> <f:selectItems value="#{UpdateContract.gatewayOptions}"/> </h:selectOneMenu> </h:panelGrid> <span class="errorMsg">* ${bundle.legend_required}</span> </div> <h:commandButton type="submit" action="#{UpdateContract.submitUpdateContractAction}" id="submitUpdateContract" immediate="true" value="#{bundle.submit}" styleClass="default_button"/> </h:form>
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69 public class UpdateContract { private String label; private Long gatewaySelected; private List<SelectItem> gatewayOptions = new ArrayList<SelectItem>(); public UpdateContract() throws NamingException { manager = EJBUtils.getEJB(BankingContractManagerRemote.class); gatewayManager = EJBUtils.getEJB(GatewayManagerRemote.class); loadGatewayOptions(); final BankingContract contract = manager.find(getSessionBean().getContractId()); label = contract.getLabel(); applicationRegistry = contract.getBankingApplication().getName(); if (null != contract.getBridge()) { gatewaySelected = contract.getBridge().getId(); } else { gatewaySelected = -1L; } } private void loadGatewayOptions() { this.gatewayOptions.clear(); gatewayOptions.add(new SelectItem(-1L, "")); final List<Bridge> gateways = gatewayManager.getAll(); for (Bridge gateway : gateways) { this.gatewayOptions.add(new SelectItem(gateway.getId(), gateway.getName())); } } } public String submitUpdateContractAction() throws AdministrationException, NamingException { BankingContract contract = manager.find(getSessionBean().getContractId()); System.out.println("Gateway selected: " + gatewaySelected); if ((null != gatewaySelected) && (gatewaySelected != -1L)) { final Bridge gateway = gatewayManager.find(Long.valueOf(gatewaySelected)); contract.setBridge(gateway); } contract.setLabel(label); contract = manager.update(contract); DeleteContract.cleanSession(getSessionBean()); return "submitUpdateContract"; } public String getLabel() { return label; } public void setLabel(final String label) { this.label = label; } public Long getGatewaySelected() { return gatewaySelected; } public void setGatewaySelected(final Long gatewaySelected) { this.gatewaySelected = gatewaySelected; } public List<SelectItem> getGatewayOptions() { return gatewayOptions; } public void setGatewayOptions(final List<SelectItem> gatewayOptions) { this.gatewayOptions = gatewayOptions; }
J'ai mis des system.out.println() dans les setters pour voir s'ils etaient appelés mais je n'ai rien qui s'affiche à part la ligne "Gateway selected: -1" qui vient de ma fonction submit.
Je n'arrive pas à voir pourquoi mes valeurs ne sont pas mise à jour
Merci de votre aide.
Partager