IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Struts 1 Java Discussion :

Struts 1.3.10 : modifier liste de listes dans un formulaire


Sujet :

Struts 1 Java

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 163
    Points : 90
    Points
    90
    Par défaut Struts 1.3.10 : modifier liste de listes dans un formulaire
    Bonjour,

    Je réfléchis à un problème que je me suis posé, lequel est peut être sans solution. Je reviens sur mon application de gestion de championnats de sports collectifs.

    En outre, je manipule des listes d'objets, je voudrais les gérer au moyen d'une liste de listes.

    Voici l'objet Rencontre avec ses attributs, lesquels disposent chacun de leurs accesseurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public class Rencontre implements Serializable {
    	private static final long serialVersionUID = 1L;
    	private Long OID = new Long(Constantes.UNDEFINED_INT);
    	private Long OID_Equipe_R = new Long(Constantes.UNDEFINED_INT);
    	private Long OID_Equipe_V = new Long(Constantes.UNDEFINED_INT);
    	private String Label_Equipe_R = Constantes.UNDEFINED_STRING;
    	private String Label_Equipe_V = Constantes.UNDEFINED_STRING;
    	private int score_r = Constantes.UNDEFINED_INT;
    	private int score_v = Constantes.UNDEFINED_INT;
    	private Date date_match;
    	private int journee = Constantes.UNDEFINED_INT;
     
    ...	
    }
    L'attribut journee permet de répartir toutes les instances dans des ArrayList<Rencontre>.

    Jusqu'ici, quand une modification doit être faite sur l'application, il n'est possible de le faire journée par journée. L'idée est donc d'afficher sur une page HTML (donc une JSP) la totalité des journées afin de pouvoir modifier plusieurs journées (donc un seul un unique formulaire avec un bouton submit).

    Je crée une classe ChampionnatForm héritant d'ActionForm, laquelle va me servir à afficher toutes les instances Rencontre classées par l'attribut journee :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public class ChampionnatForm extends ActionForm {
    	private static final long serialVersionUID = 1L;
    	private List<List<Rencontre>> lesMatches = new ArrayList<List<Rencontre>>();
    	private int nbJournees;
    	private int nbEquipes;
    ...
    // tous les accesseurs sont présents
    }
    Voici la page JSP qui affiche cette classe :
    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
     
    <%@ taglib uri="/WEB-INF/tld/struts-html.tld" prefix="h" %>
    <%@ taglib uri="/WEB-INF/tld/struts-bean.tld" prefix="b" %>
    <%@ taglib uri="/WEB-INF/tld/struts-logic.tld" prefix="l" %>
    <%@ taglib uri="/WEB-INF/tld/struts-nested.tld" prefix="n" %>
    <h:html>
    <head>
    	<title><b:message key="application.nom"/></title>
    	<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1">
    	<link rel="stylesheet" type="text/css" href="css/style.css">
    </head>
    <body>
    	<h1>Championnat---</h1>
    	<h:form action="/modifieChampionnat.do?method=modifier">
    	<n:iterate id="J" name="championnatForm" property="lesMatches" indexId="index">
    	<table class="match">	
    		<tr>
    			<th colspan="4">
    				<n:iterate id="B" name="J">
    				</n:iterate>
    				Journée <n:write name="B" property="journee"/> 
    			</th>
    		</tr>
    		<tr>
    			<th colspan="2">Locaux</th>
    			<th colspan="2">Visiteurs</th>
    		</tr>
    		<n:iterate id="R" name="J">
    		<tr>
    			<td class="droite">
    				<c:if test="${R.score_r > R.score_v}">
    				<span class="vainqueur">
    				</c:if>
    				<n:write name="R" property="label_Equipe_R"/>
    				<c:if test="${R.score_r > R.score_v}">
    				</span>
    				</c:if>
    			</td>
    			<td class="centre">
    				<n:notEqual name="R" property="score_r" value="-1"><n:text size="1" name="R" property="score_r" style="centre"/></n:notEqual>
    				<n:equal name="R" property="score_r" value="-1"><n:text size="1" name="R" property="score_r" style="centre" value=""/></n:equal>
    			</td>
    			<td class="centre">
    				<n:notEqual name="R" property="score_v" value="-1"><n:text size="1" name="R" property="score_v" style="centre"/></n:notEqual>
    				<n:equal name="R" property="score_v" value="-1"><n:text size="1" name="R" property="score_v" style="centre" value=""/></n:equal>
    			</td>
    			<td class="gauche">
    				<c:if test="${R.score_r < R.score_v}">
    				<span class="vainqueur">
    				</c:if>
    				<n:write name="R" property="label_Equipe_V"/>
    				<c:if test="${R.score_r < R.score_v}">
    				</span>
    				</c:if>
    			</td>
    		</tr>
    		</n:iterate>
    	</table>
    	<div class="h10">&nbsp;</div>
    	</n:iterate>
    	<div class="h10">
    		<h:submit styleClass="vert" value="Enregistrer"/>
    		<input type="button" value="Retour" class="rouge" onclick="location.href='<b:message key="application.path"/>/accueil.do?method=init'">
    	</div>
    	</h:form>
    </body>
    </h:html>
    Mon struts-config.xml :
    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
        <form-beans>
        	<form-bean name="championnatForm" type="presentation.bean.ChampionnatForm"/>
        </form-beans>
     
    ...
    	<global-forwards>
    		<forward name="resumeChampionnatJSP" path="/pages/resumeChampionnat.jsp"/>
    		<forward name="/modifierChampionnatModifier" path="/modifieChampionnat.do?method=modifier"/>
    		<forward name="/modifierChampionnatTerminer" path="/modifieChampionnat.do?method=terminer"/>
    	</global-forwards>
     
    ...
        <action-mappings>
    		<action path="/modifieChampionnat" name="championnatForm" type="presentation.accueil.ModifierChampionnat" parameter="method"/>
        </action-mappings>
     
    ...
    La classe appelant la page :
    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
    public class ModifierChampionnat extends DispatchAction {
     
    	Logger Log = Logger.getLogger(ConsulterChampionnat.class);
     
    	public ActionForward init(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
    	throws IOException, ServletException {
    		ChampionnatForm unChampionnat = new ChampionnatForm();
    		unChampionnat.creerTable(Services.lireRencontres(), Constantes.UNDEFINED_INT);
     
    		request.getSession().setAttribute("championnatForm", unChampionnat);
     
    		return mapping.findForward(resumeChampionnatJSP);
    	}
    ...
    }
    Si tout s'affiche correctement, en revanche, aucune modification n'est prise en compte dès que je clique sur le submit.

    D'où ma question : est-il possible de faire une gestion de liste de listes ? Si oui, que me manque-t-il pour que cela fonctionne ?

    Merci par avance de vos réponses.

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 163
    Points : 90
    Points
    90
    Par défaut
    Citation Envoyé par DomIII Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <n:text size="1" name="R" property="score_r" style="centre" value=""/>
    J'ai trouvé l'erreur... l'attribut value dans <n:text> est de trop ! Le fait de l'avoir enlevé, tout fonctionne à merveilles !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. liste de checkbox dans un formulaire
    Par aktos dans le forum Langage
    Réponses: 3
    Dernier message: 26/01/2007, 17h48
  2. Liste de choix dans un formulaire continu
    Par pitchoo dans le forum IHM
    Réponses: 2
    Dernier message: 18/01/2007, 17h39
  3. Liste de sites dans un formulaire
    Par regis94 dans le forum Access
    Réponses: 16
    Dernier message: 16/08/2006, 11h26
  4. Réponses: 3
    Dernier message: 12/05/2006, 03h31
  5. Réponses: 4
    Dernier message: 23/04/2006, 21h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo