Bonjour,

Je dois rajouter des éléments sur un code existant, mais je ne connais pas tous les patterns mis en place.
Je dois récupérer une valeur d'un champ numérique en javascript, le stocker dans une variable JSTL et le soumettre à une méthode JAVA.
je sais que le javascript est côté client et que le java est côté serveur.

C'est un champs numérique dont la valeur doit être récupérée pour une boucle

Le code ajouté est en gras et les variables en question en rouge.

le code côté 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
<popo:form>
                        
                        <div class="left">
						nombre de colonnes <input type="number" id="zone"  name="zone" class="text" maxlength="25" valeur="" />
                        </div>
                            <div class="right">
                                <%controller.getContext().getInteger(ListeOuverteContributionDetailController.ZONE)=%>
                                
                                <script type="text/javascript">
                                    function getZoneJS() {
                                        var zone=(parseInt(document.form.elements["zone"].value));
                                        if (zone != null ){
                                        return zone;
                                        }                                        
                                    }
                                </script>
                                
                                <popo:action name="ADD_ELEMENT_LISTE_OUVERTE_1" text="Ajouter les colonnes" />                                
							</div>

			<popo:listpanel dtcid="<%=ListeOuverteContributionDetailController.DTC_ELEMENTS_LISTE_OUVERTE%>" readonly="false">
                            
				<popo:grid cols="2" colwidth="200px,*">
					<popo:iterator>
						<popo:field name="VALEUR"/>
						<popo:action name="DELETE_ELEMENT_LISTE_OUVERTE" text="<%=controller.getTextSupprimer() %>" style="icon"/>
					</popo:iterator>
				</popo:grid>
			</popo:listpanel>
			
			<div class="left">
				<popo:action name="ADD_ELEMENT_LISTE_OUVERTE" text="Ajouter un élément"/>	
			</div>
			<div class="left">
				<%--<popo:link address="<%=AddressItems.IMPORT_LISTE_OUVERTE_ADDRESS.getAddress()%>" fields="CHAMP_ID" objects="<%="FOR_ID," + controller.getChampKey(champId)+","+controller.DTC_ELEMENTS_LISTE_OUVERTE%>" style="button">Importer</popo:link>--%>
					<popo:action name="IMPORT_LISTE_OUVERTE" text="Importer"/>
			</div>
			<div class="left">
				<popo:action name="EXPORT_LISTE_OUVERTE" text="Exporter" />	
			</div>
			<div class="clear"></div>
			
			<div class="buttonbar">
				<div class="left">
					<popo:link address="<%=AddressItems.SECTION_CONTRIBUTION_DETAIL_ADDRESS.getAddress() %>" fields="SEC_ID" objects="FOR_ID" params="<%="MODE=" + DetailController.MODE_EDIT%>" style="button" confirm="<%=Constantes.MSG_CONFIRM_QUITTER_ECRAN_CREATION_MAJ%>">Abandonner</popo:link>
				</div>
				<div class="right">
					<popo:action name="SAVE_MODIFICATIONS_LISTE_OUVERTE" text="Enregistrer" isdefaultaction="true"/>
				</div>
			</div>
</popo:form>
la méthode JAVA qui devra récupérer la variable ZONE pour faire une boucle
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
public class ListeOuverteContributionDetailController extends AbstractContributionController {

	/**
	 * Liste des éléments de la liste ouverte.
	 */
	public static final String DTC_ELEMENTS_LISTE_OUVERTE = "DTC_ELEMENTS_LISTE_OUVERTE";

	public static final String SI_AJOUT_ELEMENT = "SI_AJOUT_ELEMENT";

        public static final String ZONE = "ZONE";
		
	public Message executeAddElementListeOuverte1() throws KUserException, KSystemException {

		final DtCollection<ElementListeOuverte> elementsListeOuverte = getContext().<ElementListeOuverte> getDtCollectionInput(DTC_ELEMENTS_LISTE_OUVERTE).validate();
                // la valeur zone qui doit être récupérée de la JSP
                final int zone = Integer.parseInt(getContext().getString(ZONE));                
                for (int i=1;i<=zone;i++){
				// On ajoute un élément à la liste des éléments stockée dans le contexte en le flagant "Nouveau"
				final ElementListeOuverte elementListeOuverte = new ElementListeOuverte();
				final ChampContribution champ = getContext().<ChampContribution> getDtObjectInput(getChampKey(getContext().getLong(CHAMP_ID))).validate();
				elementListeOuverte.setChampId(champ.getChampId());				
				elementListeOuverte.setSiNouveau(true);
				elementListeOuverte.setSiSupprime(false);
				elementsListeOuverte.add(elementListeOuverte);

				getContext().put(SI_AJOUT_ELEMENT, true);
                }
		return refresh();
	}
}
Tout ce que j'ai rajouté est inspiré du code existant. Si je met une valeur en dure dans la boucle, la méthode marche comme il le faut. Maintenant, il me manque juste de lier les deux codes.

Merci d'avance pour votre aide.