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

FAQ StrutsConsultez toutes les FAQ

Nombre d'auteurs : 25, nombre de questions : 96, dernière mise à jour : 23 février 2015  Ajouter une question

 

Cette FAQ a été réalisée à partir des questions fréquemment posées sur les forums de http://www.developpez.com et de l'expérience personnelle des auteurs.

Nous tenons à souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle propose sont correctes. Les auteurs font leur maximum, mais l'erreur est humaine. Cette FAQ ne prétend pas non plus être complète. Si vous trouvez une erreur, ou que vous souhaitez nous aider en devenant rédacteur, lisez ceci.

SommaireLiens (5)
précédent sommaire suivant
 

Si la valeur à passer se trouve dans un bean, il faut récupérer celle-ci dans un bean local avec le tag <bean:define>

Code JSP : Sélectionner tout
1
2
   <bean:define id="myBeanValue" name="myBean" property="myProperty" /> 
   <html:link href="action.do?prop='${myBeanValue}'" />

Mis à jour le 13 mai 2004 RanDomX

Si la (ou les valeurs) à passer se trouve dans un bean connu, on peut utiliser les attributs paramId et paramName. paramId correspond au nom du paramètre à passer et paramName au nom du bean qui contient la valeur.

Code JSP : Sélectionner tout
<html:link href=action.do paramId="prop" paramName="myBean"/>

Si ce bean ne contient pas que la dite propriété, on utilise l'attribut paramProperty :

Code JSP : Sélectionner tout
<html:link href="action.do" paramId="myProperty" paramName="myBean" paramProperty="myProperty"/>

Mis à jour le 13 mai 2004 RanDomX

Si la valeur est statique ou connue, il suffit d'enrichir l'URL à la main :

Code JSP : Sélectionner tout
<html:link href="action.do?prop=thepropvalue" />

Mis à jour le 13 mai 2004 RanDomX

Dans certains cas, il peut être intéressant de soumettre des valeurs par le biais d'un lien.
Si l'on souhaite passer plusieurs paramètres, on peut utiliser l'attribut paramName seul dans le tag <html:link>.
Le bean référencé doit contenir une Map contenant les couples clés/valeurs pour chaque paramètre.
Une limitation existe cependant, les noms des clés sont les noms des paramètres qui seront transmis.

Mis à jour le 13 mai 2004 RanDomX

Prenons l'exemple suivant :

Code xml : Sélectionner tout
<action path="/tonAction" parameter="action"...>
Code java : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
    public ActionForward ajouter(...) 
    {...} 
  
    public ActionForward modifier(...) 
    {...} 
  
    protected Map getKeyMethodMap() 
    { 
        Map map = new HashMap() ; 
        map.put("bouton.ajouter", "ajouter");  
        map.put("bouton.modifier", "modifier");  
        return map ; 
    }
Code : Sélectionner tout
1
2
bouton.ajouter=Ajouter 
bouton.modifier=Modifier
Une première solution serait d'écrire le code suivant dans la JSP :

Code JSP : Sélectionner tout
1
2
3
<html:link action="tonAction?action=Ajouter"> 
<bean:message key="bouton.ajouter"/> 
</html:link>

Cependant, on n'exploite pas complètement les possibilités du LookupDispatchAction, car on passe « en dur » le libellé de la clé correspondant à la méthode contrairement au cas d'un bouton de type submit où la clé du libellé est suffisante pour retrouver la méthode à exécuter.
Une solution consiste à utiliser les possibilités du tag <html:link> conjuguées à l'utilisation du tag <bean:define> :

Code JSP : Sélectionner tout
1
2
3
4
5
6
7
<bean:define id="actionAjouter"> 
   <bean:message key="bouton.ajouter"/> 
</bean:define> 
  
<html:link action="tonAction" paramId="action" paramName="actionAjouter"> 
   <bean:message key="bouton.ajouter"/> 
</html:link>

Mis à jour le 28 juin 2006 c_nvy Ricky81

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2022 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.