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 2 Java Discussion :

Créer un Select à partir d'une Map


Sujet :

Struts 2 Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 8
    Points : 7
    Points
    7
    Par défaut Créer un Select à partir d'une Map
    Bonjour,

    Ca peut sembler bête comme demande mais impossible de mettre la main sur la démarche précise à suivre pour faire fonctionner la balise <s:select>. En réunissant plusieurs sources j'arrive à un code qui me semble pas trop mal mais toujours la même erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tag 'select', field 'list', name 'plop': The requested list key 'myMapA' could not be resolved as a collection/array/map/enumeration/iterator type. Example: people or people.{name} - [unknown location]
    Struts.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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    <?xml version="1.0" encoding="UTF-8"?>
     
    <!DOCTYPE struts PUBLIC
    	"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    	"http://struts.apache.org/dtds/struts-2.0.dtd">
     
    <struts>
    	<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
    	<constant name="struts.devMode" value="true"/>
    	<constant name="struts.custom.i18n.resources" value="package"/>
     
    	<package name="default" extends="struts-default">
    		<!--<default-action-ref name="index"/>-->
     
    		<!-- Navigation rules -->
     
    		<action name="gotoPage2" class="com.bea.provisioning.test.TestStruts" method="getString">
    			<result name="success" type="redirect">page2.jsp</result>
    			<result name="error"></result>
    		</action>
     
    		<!--<action name="creerPorteur" class="com.bea.provisioning.action.ActionPorteur" method="createPorteur">
    			<result name="success" type="redirect">page2.jsp</result>
    		</action>-->
     
    		<action name="essai" class="com.bea.provisioning.action.ActionPorteur">
    			<result>AttributionBeaPorteur.jsp</result>
    		</action>
     
    		<action name="essaiSuite" class="com.bea.provisioning.action.ActionAttribution">
    			<result>page2.jsp</result>
    		</action>
     
    	</package>
    </struts>
    ActionPorteur.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
    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
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    package com.bea.provisioning.action;
     
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
     
    import javax.servlet.http.HttpServletRequest;
     
    import com.bea.provisioning.entites.Porteur;
    import com.bea.provisioning.service.ServicePorteur;
    import com.opensymphony.xwork2.ActionSupport;
     
    public class ActionPorteur extends ActionSupport{
     
    	private Porteur porteur;
     
    	private Map<Integer, String> myMapA;
     
    	private List<String> list = new ArrayList<String>();
     
    	/**
             * 
             */
    	private static final long serialVersionUID = 1L;
     
    	public ActionPorteur(){
    		list.add("Plop");
    	}
     
    	public Porteur getPorteur() {
    		return porteur;
    	}
     
    	public void setPorteur(Porteur porteur) {
    		this.porteur = porteur;
    	}
     
    	public List<String> getList() {
    		return list;
    	}
     
    	public void setList(List<String> list) {
    		this.list = list;
    	}
     
    	public Map<Integer, String> getMyMapA() {
    		return myMapA;
    	}
     
    	public void setMyMapA(Map<Integer, String> myMapA) {
    		this.myMapA = myMapA;
    	}
     
    	/* (non-Javadoc)
    	 * @see org.apache.struts2.interceptor.ServletRequestAware#setServletRequest(javax.servlet.http.HttpServletRequest)
    	 */
    	public void setServletRequest(HttpServletRequest arg0) {
    		// TODO Auto-generated method stub
     
    	}
     
    	public String createPorteur(){
    		new ServicePorteur().createPorteur(porteur);
    		return SUCCESS;
    	}
     
    	public String getFreePorteurs(){
    		myMapA = new ServicePorteur().getFreePorteurs();
    		return SUCCESS;
    	}
     
    	public String getFreePorteursList(){
    		list = new ServicePorteur().getFreePorteursList();
    		return SUCCESS;
    	}
     
    	@Override
    	public String execute() throws Exception {
    		myMapA = new HashMap<Integer, String>();
    		myMapA.put(0,"plop");
    		myMapA.put(1, "plop2");
    		return super.execute();
    	}
    }
    AttributionBeaPorteur.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
    <%@taglib uri="/struts-tags" prefix="s"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
    <s:form action="essaiSuite" method="post" theme="simple">
    	<p>
    	<s:textfield name="porteur.nom" value="nom" size="20"/> 
    	<s:textfield name="porteur.prenom" value="prenom" size="20"/>
    	<%--<s:select name="mapId" list="map" listKey="id" listValue="name"/>--%>
    	<s:select name="plop" list="myMapA"/>
    	<s:submit value="Créer" align="center"/>
    	</p>
    </s:form>
    </body>
    </html>
    J'aimerai juste récupérer une Map sur ActionPorteur et en faire un <s:select>.

    Je vous remercie de votre aide parce que ça fait bien trois jours que je me bats avec le même message d'erreur ^^.

  2. #2
    Futur Membre du Club
    Inscrit en
    Mars 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    J'ai trouvé une solution qui n'est peut-être pas la meilleur.

    En fait le problème vient du fait qu'il n'est pas possible d'exécuter une action sur une page pour remplir une list par exemple et d'utiliser cette list sur cette même page. En gros il faut que l'action qui remplie la liste soit faite au moment de l'appel à la page jsp pour que l'on puisse utiliser cette liste sur la page jsp appelée.

    J'ai donc un struts.xml avec ce bout de code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <action name="attribuerBeaPorteur" class="com.bea.provisioning.action.ActionAttribution" method="getFreeEntities">
    			<result name="success">AttributionBeaPorteur.jsp</result>
    		</action>
    Quand je clique sur un lien dans index.jsp, j'appelle cette action. Cette action execute getFreeEntities() qui remplit une liste. Sur AttributionBeaPorteur.jsp il est désormais possible d'utiliser la liste pour remplir ma balise <SELECT>.

    J'espère que ça pourra aider des gens qui comme moi galèrent à débuter par manque de réponses précises .

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 83
    Points : 34
    Points
    34
    Par défaut
    Bonjour,
    Excuse moi de vous déranger, j'ai la même erreur que vous et j'arrive pas à trouver une solution pourtant je procéde comme vous avez expliqué si j'ai bien compris. Merci de m'éclaircir
    merci d'avance

  4. #4
    Membre habitué Avatar de Altenide
    Homme Profil pro
    Formateur en technologies web
    Inscrit en
    Décembre 2008
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Formateur en technologies web
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2008
    Messages : 129
    Points : 182
    Points
    182
    Par défaut
    il faut nous donner ton code pour que l'on puisse t'aider (struts.xml, classe d'action et *.jsp)

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 83
    Points : 34
    Points
    34
    Par défaut
    Bonjour,
    voila ou j'ai déposé mes bouts de code concerné
    http://www.developpez.net/forums/d99...2/#post5603708
    Merci d'avance

  6. #6
    Candidat au Club
    Femme Profil pro
    Etidiante
    Inscrit en
    Avril 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : Maroc

    Informations professionnelles :
    Activité : Etidiante
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 1
    Points : 2
    Points
    2
    Par défaut tag 'checkboxlist', field 'list', name 'mode': The requested list key 'listMode' could not be resolved as a co
    Bonjour tt le monde J ai essayé d afficher la page Demander.jsp mais il m affiche tjs ce probleme
    Ci joint Ma classe d 'action ,struts.xml.la Page JSP
    j ai besoin de votre aide Mercii C urgent car je passe un stage
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 12/07/2006, 10h03
  2. [MySQL] Aide select à partir d'une table
    Par carlosdz dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 28/06/2006, 22h47
  3. Créer un rtf à partir d'une form
    Par akabane dans le forum Delphi
    Réponses: 2
    Dernier message: 07/06/2006, 10h18
  4. Remplir deux listes select à partir d'une autre
    Par Raduris dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 23/11/2005, 15h29
  5. Réponses: 5
    Dernier message: 24/06/2005, 11h36

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