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 :

Supprimer un paramètre de la requête


Sujet :

Struts 2 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Par défaut Supprimer un paramètre de la requête
    Bonjour,

    Je cherche une solution pour filtrer un paramètre HTTP de façon à ce qu'il ne soit pas repris dans la JSP par les taglib Struts2 s:a et s:url lorsque l'attribut includeParams="get" est utilisé.

    Exemple :
    Si j'ai l'url suivante, monurl/montraitement.action?un_parametre=OK&un_autre_parametre=a_exclure
    J'aimerai que dans ma page les liens reprennent tous les paramètres sauf "un_autre_parametre".

    J'ai déjà exploré la solution consistant à utiliser un intercepteur (Parameter Filter Interceptor) mais la génération de la JSP est en dehors de "la zone d'influence" des intercepteurs ...

    Merci d'avance.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Par défaut
    Bonjour à tous,

    J'ai trouvé une solution mais il m'a fallu pour cela chausser mon casque de spéléo et rentrer dans le code des taglibs Anchor et Url de STRUTS2 ...

    En effet, j'avais testé sans succès une solution avec un Filtre et un HttpServletRequestWrapper dans lequel j'ai filtré les paramètres pour chacune des méthodes getParameterMap(), getParameterNames(), getParameter()

    Pour information, la liste des paramètres GET propagée à l'aide du paramètre includeParams="get" n'est pas générée (en tous cas dans STRUTS 2.3.x) à partir d'une des méthodes de récupération des paramètres du HttpServletRequest mais à partir de sa propriété getQueryString().

    solution "JSP" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <s:a url="/mon-traitement.action" includeParams="get" >
        <s:param name="mon-param-a-exclure" value="" />
    </s:a>
    Cette solution fonctionne mais doit être mise partout et même si le paramètre n'existait pas dans l'url d'origine il est maintenant présent avec une valeur nulle.

    solution "Filter+HttpServletRequestWrapper" :
    Code web.xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <filter>
    	<filter-name>monFiltre</filter-name>
    	<filter-class>com.xxxxx.ParameterExclusionFilter</filter-class>
    </filter>
     
    <filter-mapping>
    	<filter-name>monFiltre</filter-name>
    	<url-pattern>/*</url-pattern>
    	<dispatcher>REQUEST</dispatcher>
    </filter-mapping>
    Le filtre peut être appliqué ou non suivant url-pattern.
    Code Filter : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public class ParameterExclusionFilter implements Filter {
    	public final void doFilter(SrevletRequest request, ServletResponse response, FilterChain chain) throws ServletException {
    		if (!(request instanceof HttpServletRequest)) {
    			throw new ServletException("HttpServletRequest attendue");
    		}		
    		chain.doFilter(new ParamExclusionHttpServletRequest((HttpServletRequest) request), response);
    	}
    }
    Pour cette solution, la classe ParamExclusionHttpServletRequest doit se charger de filtrer les paramètres "indésirables"

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

Discussions similaires

  1. Paramètres dans une requête
    Par christellel198 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 24/10/2005, 13h49
  2. Récupération des paramètres d'une requête
    Par TomPad dans le forum Access
    Réponses: 10
    Dernier message: 16/06/2005, 15h11
  3. Réponses: 7
    Dernier message: 18/05/2005, 15h09
  4. Passage de paramètres dans une requête imbriquée
    Par DrakkoFR dans le forum Langage SQL
    Réponses: 2
    Dernier message: 07/02/2005, 12h46
  5. Réponses: 5
    Dernier message: 27/11/2003, 10h55

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