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 :

bean:message KO -> page blanche


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 62
    Par défaut bean:message KO -> page blanche
    Bonjour,

    voici mon problème :

    Je veux récupérer un message dans un fichier de propriétés. Ce message est ensuite affiché dans un tableau.

    Mon code est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <c:set var="keyValue"><bean:message key="status.${fn:replace(val,' ', '_')}" bundle="supervision_supandctrl"/> </c:set><c:out value="${keyValue}"/>
    Or ci la clé n'existe pas dans mon fichier de propriètés, lors de l'affichage, ma page jsp affiche le début et "coupe" c'est une page blanche au niveau du tableau

    Comment faire pour mettre en place un controle sur ce message ?
    C'est à dire que je voudrais que lorsque le message n'existe pas dans le fichier, on n'affiche rien dans le tableau mais la page jsp s'affiche quand meme avec le reste.

    Merci de votre aide,

  2. #2
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Normalement, si tu utilises le tag bean:message pour une clé qui n'existe pas, tu devrais avoir un message d'erreur du type "Missing message for key ...".

    Enfin, sinon, tu pourrais plutôt utiliser le tag fmt:message de la JSTL qui semble renvoyer ???valeurCle??? quand la clé n'existe pas.
    Tu ajoutes l'attribut var dans ce tag pour stocker le message dans une variable et ensuite, tu testes si la valeur de cette variable contient '???' via le tag c:if :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <fmt:message key="status.${fn:replace(val,' ', '_')}" var="keyValue"/>
    <c:if test="${ ! fn:contains(keyValue,'???')}">
       <c:out value="${keyValue}"/>
    </c:if>
    ça fait un peu bidouille mais c'est la seule idée qui me vient à l'esprit.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 62
    Par défaut Problème avec fmt:message et bundle
    Merci de ta réponse.

    En effet, lorsque fmt:message ne trouve pas la clé, la valeur contient alors '???'.

    Mon problème est maintenant qu'il ne me trouve aucune clé dans mon fichier.
    Il me semble qu'il y a un problème de bundle.

    Avec le bean:message, je spécifie juste le nom du bundle, et il récupère la Locale dans la session à priori.

    Pour le fmt:message, cela n'a pas l'air de fonctionner.

    j'ai essayé le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <fmt:setBundle basename="supervision_supandctrl" />
    <fmt:setLocale value="${sessionScope['org.apache.struts.action.LOCALE']}" scope="session" />
     
    <fmt:message key="status.${fn:replace(val,' ', '_')}" var="keyValue"/>
     
    <c:if test="${!fn:contains(keyValue,'???')}">
    <c:out value="${keyValue}"/>
    </c:if>
    <c:if test="${fn:contains(keyValue,'???')}">
    <c:out value="clé introuvable"/>
    </c:if>
    Mais il ne me trouve aucune clé alors que j'avais des valeurs avec bean:message.

    Merci de votre aide,

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 62
    Par défaut Résolu avec fmt:bundle et fmt:message
    Problème résolu en utilisant fmt:bundle au lieu de fmt:setBundle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <fmt:bundle basename="Supervision-supandctrl">
      <fmt:message key="status.${fn:replace(val,' ', '_')}" var="keyValue"/>
      <c:if test="${!fn:contains(keyValue,'???')}">
        <c:out value="${keyValue}"/>
      </c:if>
    </fmt:bundle>

  5. #5
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    J'étais sur le point de te répondre mais tu as été plus rapide que moi.

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

Discussions similaires

  1. [2.x] handleRequest => page blanche sans message d'erreur
    Par moolligan dans le forum Symfony
    Réponses: 6
    Dernier message: 14/08/2013, 15h29
  2. Réponses: 6
    Dernier message: 27/04/2010, 18h17
  3. [Directives] Page blanche quand erreur de syntaxe
    Par syl2095 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 12
    Dernier message: 17/02/2006, 15h15
  4. [ Struts] pbs avec <bean:message key=.../>
    Par njac dans le forum Struts 1
    Réponses: 3
    Dernier message: 01/12/2004, 14h08
  5. [CR] Avoir seulement une page blanche qd la base est vide???
    Par littleChick dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 13/08/2002, 18h26

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