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 :

tag html:link et caractères accentués


Sujet :

Struts 1 Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 15
    Points : 12
    Points
    12
    Par défaut tag html:link et caractères accentués
    bonjour,
    voici un pb assez délicat que j'ai sur des liens générés dynamiquement dans une jsp à partir du tag <html :link>

    J'utilise le lien pour appeler une action struts en lui passant directement un paramètre. mais ce paramètre contient des caractères accentués (éèà@@ç).

    Le code html généré est propre à l'affichage mais lorsqu'on clique sur le fameux lien, le navigateur remplace les caractères éèà etc par des %C3%A9 etc ..

    Mon appel se transforme en http://context/action.do?nomParm=%C3%A9
    évidemment ça plante par la suite ...

    voyez plutôt :
    morceaux de code :
    la page jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <%@ page language="java" pageEncoding="ISO-8859-1"%>
    <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
    <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
    <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
    <%@ taglib uri="/WEB-INF/tagliWebDHCP.tld" prefix="myTag" %>
     
    ....
    la ligne du Html link 
     
    <td class="<%=cssClass%>"><div align="left"><html:link action="/siteVisuAfficheFromListe" paramId="nomSite" paramName="temp" paramProperty="nom" styleClass="lienN"><bean:write name="temp" property="nom"/></html:link></div></td>

    La page html généré

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <td class="toto>"><div align="left"><a href="/context/siteVisuAfficheFromListe.do?nomSite=%C3%A9%C3....." class="lien">éèàù....</a></div></td>
    Bilan:
    Sur l'ecran du navigateur le texte du lien est bien affiché avec les accents
    "éèàù..."
    mais quand on clique dessus l'url appelée est foireuse ...


    quelqu'un a t'il une idée ???
    Images attachées Images attachées   

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 15
    Points : 12
    Points
    12
    Par défaut Un peu plus clair
    Hello
    Après avoir cherché un peu ... je voudrais savoir :
    une url est elle toujours au format UTF-8 ??

    j'utilise un filtre dans struts qui force l'encodage de toutes les request et response en ISO-8859-1 mais rien à faire ..
    quand je clique sur le liens qui a ete fabriqué avec le tag <html:link> l'url est en UTF-8 ...

    ok ... soit ..
    dans mon action struts ... je recupère mon parametre
    String toto = request.getparameter("nom_Param"); encodé en utf-8

    Et la impossible de reconvertir cette chaine en ISO-8859-1
    ça foire
    Si je fais :

    String tutu= new String(toto.getBytes("UTF-8"),"ISO-8859-1");

    ou bien
    String titi = URLDecoder.decode(toto,"UTF-8");

    je ne retrouve pas la bonne valeur.


    Avez vous une idée ??

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 15
    Points : 12
    Points
    12
    Par défaut [résolu]
    bon voilà c'est résolu.

    Pour faire les choses proprement je vous conseille d'utiliser un filtre qui force l'encodage des requettes (voir les excellents articles suivants )
    http://pi2.developpez.com/tutoriels/j2ee/encodage/#LII

    Mais par précaution j'ajoute aussi dans les pages jsp les codes suivants:
    <meta http-equiv="Content-Type" content="text/html;Charset=ISO-8859-1">


    ET du coup dans mon tag
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <td class="<%=cssClass%>"><div align="left"><html:link action="/siteVisuAfficheFromListe" paramId="nomSite" paramName="temp" paramProperty="nom" styleClass="lienN"><bean:write name="temp" property="nom"/></html:link></div></td>
    ajouter l'attribut useLocalEncoding="true"

    pour moi tout marche maintenant

    j'utilise Struts 1.2.7

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

Discussions similaires

  1. [débutant] Utilisation des tags "html:link", etc.
    Par ghohm dans le forum Struts 1
    Réponses: 6
    Dernier message: 30/05/2007, 17h58
  2. Invocation de Tag <html:link> dans un Tag JSP
    Par Bogdan dans le forum Struts 1
    Réponses: 4
    Dernier message: 29/12/2006, 09h38
  3. tag html link et passage de paramètre à url.
    Par david06600 dans le forum Struts 1
    Réponses: 1
    Dernier message: 22/08/2006, 14h22
  4. utiliser un bean dans le tags html:link
    Par clement42 dans le forum Struts 1
    Réponses: 3
    Dernier message: 29/07/2005, 18h36
  5. [struts html tag] html:link associé à un event javascript
    Par VinceFromBcn dans le forum Struts 1
    Réponses: 2
    Dernier message: 16/03/2005, 11h59

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