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 :

<s:select /> - Récupérer les éléments sélectionnés


Sujet :

Struts 2 Java

  1. #1
    Membre averti
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 24
    Par défaut <s:select /> - Récupérer les éléments sélectionnés
    Bonjour à tous,

    J'ai un model comprenant une liste d'objet. Ce modele s'affiche dans un JSP et je peu faire afficher ma liste complete. Par contre j'ai plusieurs bouton dans mon formulaire dont 2 qui supprime ou ajoute des objet a cette liste. Je n,ai pas de problème pour ajouter des objet, mais supprimer je ne sais absolument pa scomment le faire. Je vous donne des boute de code.

    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
    <html xmlns="http://www.w3.org/1999/xhtml">
    	<head>
    	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    	<title>Client</title>
    	
    	</head>
    	
    	<body>
    		<table width="100%" height="100%" border="0" cellspacing="0" cellpadding="0">
    			<tr>
    			<tr>
    				<td align="center">
    					<s:form>
    						<s:hidden name="id" />
    
    						<table border="0">
    							<tr>
    								<td align="left" valign="top">Urls:</td>
    								<td align="left" valign="top" colspan="3">
    									<table border="0" width="100%">
    										<tr>
    											<td align="left" width="95%"><s:textfield label="Url" name="url" style="width:100%" /></td>
    											<td align="left" width="5%">
    												<s:submit action="ajouterURL" type="image" src="../images/plusicon.gif" />						
    											</td>
    										</tr>
    										<tr>
    											<td align="left" valign="top">
    												<s:select listKey="id" listValue="url" list="urls" size="5" multiple="true" style="width:100%" />
    											</td>
    											<td align="left" valign="top">
    												<s:submit action="supprimerURL" type="image" src="../images/minus_icon.gif" />										
    											</td>
    										</tr>
    									</table>			  
    								</td>
    							</tr> 
    							<tr>
    								<td align="right" colspan="4">
    									<s:if test="action == 'create'">
    										<s:submit value="Ajouter" action="save" />
    									</s:if>									
    									<s:else>
    										<s:submit value="Update" action="update" />
    										<s:submit value="Delete" action="delete" />
    									</s:else>
    									<s:submit value="Cancel" action="cancel" />
    								</td>
    							</tr>      
    						</table>					
    					</s:form>						
    				</td>
    			</tr>
    		</table>
    	</body>
    </html>
    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
    public class ClientCRUDAction extends ActionSupport implements ModelDriven<Client>, Preparable, ServletRequestAware {
    	public static final long serialVersionUID = 0L;
     
    	private HttpServletRequest request;
    	private FicheService service = (FicheService)SpringService.getBean("ficheService");
     
    	private int id;
    	private String url, action;
     
    	private Client client;	
     
    	public void prepare() throws Exception {
    		System.out.println("Call prepare()");
    		HttpSession session = request.getSession();
     
    		if (session.getAttribute("client") == null) {
    			if (this.id == 0) client = new Client(id); //new Client
    			else client = service.chargerClientDetailler(id); //load
    		}
    		else client = (Client)session.getAttribute("client"); //Modify
     
    		printClient(client);
    	}	
    	public String ajouterURL() {
    		System.out.println("call ajouterURL()");
     
    		Url newUrl = new Url(service.getNextId(Url.class), url, client);
    		if (client.getUrls().contains(newUrl)) {
    			int newId = 0;
     
    			for (Url current : client.getUrls())
    				if (current.getId() > newId) newId = current.getId();
    			newUrl.setId(newId + 1);
    		}
     
    		this.url = "";
    		client.getUrls().add(newUrl);
    		request.getSession().setAttribute("client", client);
    		printClient(client);
    		return SUCCESS;
    	}	
    	public String supprimerURL() {
    		System.out.println("call supprimerURL()");
     
    		for (Url current : selectedUrls)
    			System.out.println(current);
     
    		request.getSession().setAttribute("client", client);
    		printClient(client);
    		return SUCCESS;
    	}
    	public Client getModel() {
    		return client;
    	}
     
    	public int getId() {
    		return id;
    	}
    	public void setId(int id) {
    		this.id = id;
    	}
    	public void setServletRequest(HttpServletRequest request) {
    		this.request = request; 
    	}
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <package name="client" namespace="/client" extends="struts-default">
        	<default-interceptor-ref name="defaultStack"/>
     
        	<action name="ajouterURL" class="com.myCompagnie.fict.struts.action.ClientCRUDAction" method="ajouterURL">
        		<result>/jsp/client.jsp</result>
        	</action>
     
        	<action name="supprimerURL" class="com.myCompagnie.fict.struts.action.ClientCRUDAction" method="supprimerURL">
        		<result>/jsp/client.jsp</result>
     
        		<interceptor-ref name="paramsPrepareParamsStack"/>
        	</action>
    </package>

  2. #2
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 86
    Par défaut
    Je ne vois pas quel est ton problème, tu récupères l'identifiant de ta liste urls et tu la supprime de ta liste client.getUrls() dans ta méthode supprimerURL() de ton action.

  3. #3
    Membre averti
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 24
    Par défaut
    Justement comment je récupère cette identifiant si ma liste est une liste d'objet mapper comme suis:

    Html(strut):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <s:select listKey="id" listValue="url" list="urls" size="5" multiple="true" style="width:100%" />
    Model 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
    public class Client implements Serializable {
        public static final long serialVersionUID = 1L;	
        private int id;
        private String nom, adresse, ville, province, codePostal, imgCompagnie;
        private List<Url> urls;
     
        ...
        public void setUrls(List<Url> urls) { this.urls = urls; }
        public List<Url> getUrls() { return this.urls; }
    }
     
    public class Url implements Serializable {
        private int id;
        private String Url;
     
        ...
        Getter and setter
    }
    Action Strut:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public class ClientCRUDAction extends ActionSupport implements ModelDriven<Client>, Preparable, ServletRequestAware {
        private Client client;
       
        public String supprimerURL() {
            System.out.println("call supprimerURL()");
    
            client.getUrls().remove(<quelle est mon/mes ID's>);	
            return SUCCESS;
        }
    }
    Il me manque certainement quelque chose mais quoi? Merci d'avance

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 86
    Par défaut
    Ok, dans ton action rajoute
    ton action
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    private List selectedUrls;
    public List getSelectedUrls() {
            return selectedUrls;
        }
     
        public void setSelectedUrls(List selectedUrls) {
            this.selectedUrls= selectedUrls;
        }
    ta jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <s:select listKey="id" listValue="url" list="urls" size="5" multiple="true" style="width:100%" name="selectedUrls" />
    Et voilà le tour est joué .
    Tu as un exemple dans l'application de showcase disponible
    dans l'onglet crud --> edit employee
    http://struts.apache.org/download.cgi#struts216

    Bon courrage

Discussions similaires

  1. Réponses: 2
    Dernier message: 12/06/2014, 14h14
  2. Réponses: 1
    Dernier message: 29/07/2010, 16h10
  3. Réponses: 2
    Dernier message: 16/11/2009, 13h58
  4. CheckBoxList : récupérer les éléments sélectionnés avec javaScript
    Par kroukse dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/11/2009, 17h04
  5. Réponses: 7
    Dernier message: 13/11/2009, 13h22

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