Bonjour,

J'ai découvert hier une toute petite partie de la puissance des JSTL et ça devrait bien m'aider dans mon appli. J'ai des POJO mappés sur une BD avec Hibernate et j'ai plus qu'à faire de l'affichage et du remplissage. J'ai fait un petit test mais mes variables ne sont pas remplacées par leur valeur.

J'utilise Tomcat que je lance depuis Eclipse. J'ai bien ajouté toutes les librairies dans mon java build path. Voici mon arborescence :

WEB-INF/
.....web.xml
.....LIB/
..........mes libs Hibernate
..........jstl.jar
..........standard.jar
.....SRC/
..........monpkg/
...............ServletTest.java
WEB/
.....test.jsp

Et le contenu des fichiers

web.xml :
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
 
<?xml version="1.0" encoding="ISO-8859-1"?>
 
<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">
 
<web-app>
   <display-name>test</display-name>
 
    <servlet>
        <servlet-name>test</servlet-name>
        <servlet-class>esp_client.metier.ServletTest</servlet-class>
        <load-on-startup>2</load-on-startup>
    </servlet>
 
    <servlet-mapping>
        <servlet-name>test</servlet-name>
        <url-pattern>/test</url-pattern>
    </servlet-mapping>
</web-app>
test.jsp
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
<%@ page contentType="text/html; charset=iso-8859-1" language="java" import="" errorPage="" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>test</title>
</head>
<body>
<%
	String test = (String) request.getAttribute("test");
%>
<p>Variable JSTL - ${requestScope['test']}</p>
<p>Scriplet - <%= test %></p>
</body>
</html>
ServletTest.java
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
protected void doGet(HttpServletRequest req, HttpServletResponse rep)
            throws ServletException, IOException {
 
        String test = "variable de test";
 
        // Ajout des objets nécessaire au JSP à la requête
        req.setAttribute("test", test);
 
        // Passage des paramètres à la partie présentation
        ServletContext sc = getServletContext();
        RequestDispatcher rd = sc.getRequestDispatcher("/web/test.jsp");
        rd.forward(req, rep);
    }
Voilà. Quand je lance ma ServletTest, j'obtiens bien le code de ma variable en passant par les scriplet mais pas avec JSTL.
Je n'ai pourtant pas de message d'erreur, j'ai du oublier un truc quelque part mais je ne trouve pas où.

Merci pour votre aide !!!