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

Servlets/JSP Java Discussion :

Affichage valeur attribut request JSP


Sujet :

Servlets/JSP Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 8
    Par défaut Affichage valeur attribut request JSP
    Bonjour,

    Je bute sur un problème vraiment basique depuis hier et je n'ai pas trouvé de sujet similaire sur le forum...

    J'ai une servlet Java EE dans laquelle je crée un String tout simple que je veux afficher dans la page JSP.

    Code de la servlet java :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    String s = "value of the string";
    request.setAttribute( "text", s );
    this.getServletContext().getRequestDispatcher( "/WEB-INF/maJSP.jsp" ).forward( request, response );
    Code dans la JSP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <p> Text test 1 = <c:out value="${ text }"/></p>
    Et le résultat :
    Text test 1 = ${ text }

    Bon voilà, ça marche pas.
    Sauf que si j'inclus du code Java au lieu de JSTL, là ça fonctionne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <p> Text test 2 =
    	<% String attribut = (String) request.getAttribute("text");
            out.println( attribut);
            %>
    </p>
    Et le résultat, comme prévu :
    Text test 2 = value of the string

    Quelqu'un aurait-il une idée ?
    Aucune erreur n'est levée et le code est identique à celui d'autres projets où tout fonctionne bien..

    Merci d'avance.

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Tu as bien référencé la bibliothèque de tags ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
    Peux-tu montrer l'intégralité de ta page (ou le début au moins) ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 8
    Par défaut
    Oui je l'ai fait.

    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
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
    		<title>Graph test</title>
     
    		<script type="text/javascript" src="inc/vis.js"></script>
    		<link href="inc/vis.css" rel="stylesheet" type="text/css" />
     
    		<style type="text/css">
                            #mynetwork {
                                    width: 600px;
                                    height: 400px;
                                    border: 1px solid lightgray;
                            }
                    </style>
    	</head>
    	<body>
    		<div id="tests">			
    			<p> Text test 2 =
    				<% String attribut = (String) request.getAttribute("text");
                                    out.println( attribut);
                                    %>
    			</p>
    			<p> Text test 1 = <c:out value="${ text }"/></p>
    		</div>

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Ecrit plutot #{text} peut être? On peux choisir entre $ et #, mais je ne me souviens plus de ce qui critérise cela.

  5. #5
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 325
    Billets dans le blog
    12
    Par défaut
    Tu as pensé à inclure la dépendance jstl dans ton projet ?

    Avec Maven (source) :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <dependency>
    	<groupId>javax.servlet.jsp.jstl</groupId>
    	<artifactId>jstl</artifactId>
    	<version>1.2</version>
    </dependency>

    PS: tchize_, $ c'est quand tu utilises les EL avec les JSP, et # (un peu plus poussé) quand tu travailles sur une Facelet (JSF).
    N'hésitez pas à consulter la FAQ Java, lire les cours et tutoriels Java, et à poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 8
    Par défaut
    Citation Envoyé par Gugelhupf Voir le message
    Tu as pensé à inclure la dépendance jstl dans ton projet ?

    Oui je l'ai. J'ai pas le même group id mais je pense pas que ce soit le problème :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <dependency>
    	<groupId>javax.servlet</groupId>
    	<artifactId>jstl</artifactId>
    	<version>1.2</version>
    </dependency>

    Et plus généralement, je ne pense pas que jstl soit le problème puisque juste avec une expression EL simple, ça ne marche pas non plus :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <p> Text test 3 = ${ text }</p>

    et j'obtiens :

    Text test 3 = ${ text }

  7. #7
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 325
    Billets dans le blog
    12
    Par défaut
    C'est bizarre, il y a plusieurs version de cette librairie dans le Maven repository, je viens de voir celui-là (source) :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <dependency>
    	<groupId>jstl</groupId>
    	<artifactId>jstl</artifactId>
    	<version>1.2</version>
    </dependency>
    ...mais je pense que le tiens devrait fonctionner.

    J'ai une autre idée, essaye d'enlever les espaces autour de "text", donc au lieu de ${ text } fait ${text}. Si ta classe qui hérite de HttpServlet n'est pas public, ajoute ce mot-clé.
    N'hésitez pas à consulter la FAQ Java, lire les cours et tutoriels Java, et à poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 8
    Par défaut
    Citation Envoyé par Gugelhupf Voir le message
    C'est bizarre, il y a plusieurs version de cette librairie dans le Maven repository, je viens de voir celui-là (source) :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <dependency>
    	<groupId>jstl</groupId>
    	<artifactId>jstl</artifactId>
    	<version>1.2</version>
    </dependency>
    ...mais je pense que le tiens devrait fonctionner.
    Aucune différence

    Citation Envoyé par Gugelhupf Voir le message
    J'ai une autre idée, essaye d'enlever les espaces autour de "text", donc au lieu de ${ text } fait ${text}. Si ta classe qui hérite de HttpServlet n'est pas public, ajoute ce mot-clé.
    Elle est déjà publique et ça ne change rien sans les espaces :/
    Et j'arrive à accéder à la valeur si j'utilise une inclusion de code java plutôt qu'une expression EL/JSTL (cf premier post), donc je pense que le problème est plutôt sur l'interprétation des expressions EL, mais je comprends pas ce qui bloque.

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 8
    Par défaut
    Problème résolu : j'ai trouvé un fil sur mon problème ici : http://stackoverflow.com/questions/7...-not-evaluated

    Le problème est donc que dans un projet web app créé avec un maven archetype, les EL sont désactivées par défaut.
    Merci à ceux qui ont essayé de m'aider.

  10. #10
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 325
    Billets dans le blog
    12
    Par défaut
    D'accord je vois, mais cela ne répond pas directement à ta question, la source du problème semble venir de l'en-tête du web.xml généré par Maven (cf: ce post). Donc du coup tu remplaces l'en-tête du web.xml par le bon peut-être ? Si tu peux je te conseille d'utiliser la spécification 3.1 (Java 7 EE) pour pouvoir utiliser les annotations de mapping au lieu de la 2.5 (Java EE 5) qui commence à dater très sévèrement.
    N'hésitez pas à consulter la FAQ Java, lire les cours et tutoriels Java, et à poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 8
    Par défaut
    Oui je suis aussi tombé sur ce post hier, j'ai remplacé le header généré par maven par celui généré pour un projet sans maven (sous Eclipse Luna pour moi), en version 3.0 et plus de problème.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 22/07/2009, 18h22
  2. Requete affichage valeurs diferentes d'un champs
    Par joxbl dans le forum Requêtes
    Réponses: 4
    Dernier message: 10/11/2005, 15h27
  3. []probleme affichage valeur dans combobox
    Par gup dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 23/09/2005, 09h22
  4. [html][xsl]Problème valeur attribut html
    Par beho dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 16/04/2005, 13h37
  5. affichage valeur d'un Slider
    Par djiwalloo dans le forum MFC
    Réponses: 4
    Dernier message: 24/11/2004, 10h28

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