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][Tomcat 5.5][Eclipse]Récuperer une liste dynamique d'un select


Sujet :

Struts 1 Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 6
    Points : 5
    Points
    5
    Par défaut [Struts 1.3][Tomcat 5.5][Eclipse]Récuperer une liste dynamique d'un select
    Bonjour !

    Je vous expose mon problème :

    J'ai deux listes à choix multiples, la première est remplis par le unspecified de mon de mon DispatchAction grâce à une base de donnée.

    Mon objectif est de selectionner une ou plusieurs options de cette liste et les faire basculer dans une seconde liste grâce a un JavaScript.

    Jusque là tout va bien mais tout vas mal quand j'essaye de récuperer la seconde liste.

    Je vous donne les bouts de code qui sont censés vous éclairer.

    Voici ma jsp (boutton submit + listes)

    Code html : 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
     
    <table>
    	<tr>
    		<td><html:submit value="Date du jour" onclick="selectAll(selList2, true); setDispatch('resetDate','formulaireBean');"></html:submit></td>
    	</tr>
    </table>
     
    [...]
     
    <td>
    	<html:select property="selList1" multiple="true" style="height: 150px; width: 250px;">
    		<html:options property="list11" />
    	</html:select>
    </td>
    <td>
    	<html:button property="sr" value="->" onclick="simpleAdd('selList1', 'selList2');" /> <br/>
    	<html:button property="dr" value="->>" onclick="addAll('selList1', 'selList2');" /> <br/><br/>
    	<html:button property="sl" value="<-" onclick="simpleAdd('selList2', 'selList1');" /> <br/>
    	<html:button property="dl" value="<<-" onclick="addAll('selList2', 'selList1');" />
    </td>
    <td>
    	<html:select property="selList2" multiple="true" style="height: 150px; width: 250px;">
    		<html:options property="list22" />
    	</html:select>
    </td>

    Ici le boutton va juste remettre une date de mon formulaire à la date du jour et fait un return mapping.getInputForward(); au niveau de son action. Mais sans récuperer mes listes, celles-ci retourne à leur position initiale, donc on perd tout les mouvements effectué par l'utilisateur.

    Voici mon action :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    	public ActionForward resetDate(ActionMapping mapping, ActionForm form,
    			HttpServletRequest request, HttpServletResponse response)
    			throws Exception {
     
    		FormulaireForm	myForm = (FormulaireForm) form;
     
    		//remise à la date du jour
    		formuDAO = (FormulaireDAO) getServlet().getServletContext().getAttribute(Constants.FORMU_DAO_KEY);
    		myForm.setDate(formater.format(today).toString());
    		toto = myForm.getSelList2();
    		myForm.setList22(toto);
    		return mapping.getInputForward();
    Voici mes JavaScripts

    Code javascript : 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
     
    function setDispatch(param, nomForm){
    	document.forms(nomForm).dispatch.value = param;
    	}
     
    function simpleAdd(idOrig, idDest) {
    	var objOrig = document.getElementById(idOrig);
    	var objDest = document.getElementById(idDest);
    	for (i = 0; i < objOrig.length; i++) {
    		if (objOrig.options[i].selected == true) {
    			var len=objDest.options.length++;
    			objDest.options[len].text = objOrig.options[i].text;
    			objDest.options[len].value = objOrig.options[i].value;
    		}
    	}
    	for (i = objOrig.length - 1; i >= 0; i--) {
    		if (objOrig.options[i].selected == true) {
    			objOrig.options[i] = null;
    		}
    	}
    }
     
    function addAll(idOrig, idDest){
    	var objOrig = document.getElementById(idOrig);
    	var objDest = document.getElementById(idDest);
    	for (i = 0; i < objOrig.length; i++) {
    		var option = new Option(objOrig.options[i].text, objOrig.options[i].value);
    		objDest.options[objDest.options.length] = option;
    	}
    	for (i = objOrig.length - 1; i >= 0; i--) {
    		objOrig.options[i] = null;
    	}
    }
     
    function selectAll(idList, bool) {
    	var objList = document.getElementById(idList);
    	for (i = 0; i < objList.length; i++) {
    		objList.options[i].selected = bool;
    	}
    }


    Actuellement j'essaye de faire un selectAll de ma seconde liste car j'ai cru comprendre que dans le bean le select passait uniquement les options selectionnées. Mais mon script plante sur la ligne "for (i = 0; i < objList.length; i++)"

    Lorsque je lance l'action resetDate, j'ai une exception lié a mon action car étant donné que mon premier script selectAll ne fonctionne pas, le second script setDispatch ne s'execute pas, donc pas d'action ce qui est normal.

    Si vous avez besoin de plus d'infos je vous les fournirai volontier !

    Ca fait a peine 1 semaine que je découvre le JavaScript donc j'ai encore du mal a saisir pas mal de notions.
    Je tiens aussi a préciser que ca fait 1 mois que je fais de la POO et donc du développement Web, si vous voyez des incohérences dans mon code n'hésitez surtout pas a me le signaler je suis prenneur

    Bon appétit.

    Cdlt.

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    J'ai reglé le probleme du script qui ne fonctionnait pas.

    Enfaite mon script fonctionne c'est juste que je l'utilisais pas au bon moment.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <html:form action="formulaire" method="POST" onsubmit="selectAll('selList2',true);">
    	<table>
    		<tr>
    			<td><html:submit value="Date du jour" onclick="setDispatch('resetDate','formulaireBean');"></html:submit></td>
    		</tr>
    	</table>
    </html:form>

    au lieu de

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <html:form action="formulaire" method="POST">
    	<table>
    		<tr>
    			<td><html:submit value="Date du jour" onclick="selectAll(selList2, true); setDispatch('resetDate','formulaireBean');"></html:submit></td>
    		</tr>
    	</table>
    </html:form>

    du coup maintenant je peux récuperer ma liste dans mon Action et tout vas bien dans le meilleur des mondes

    Par contre si quelqu'un connait une méthode qui permet de récuperer cette liste mais sans avoir a passer par un script qui doit tout sélectionner, ca m'interesse !

Discussions similaires

  1. Struts JSP Récuper une liste JSP vers Java
    Par Anthone dans le forum Struts 1
    Réponses: 0
    Dernier message: 11/10/2012, 10h00
  2. Récuperer une liste à choix multiple
    Par madjidri dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 10/02/2009, 11h30
  3. eclipse trier une liste de points désordonnés
    Par pvoncken dans le forum Physique
    Réponses: 0
    Dernier message: 23/10/2007, 13h56
  4. [JDOM] [XPATH] Récuperer une liste d'attribut
    Par lil_k123 dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 31/05/2007, 16h10
  5. Réponses: 3
    Dernier message: 22/05/2006, 09h58

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