2011-09-10 16 views
5

Tengo dos problemas. El primero es que estoy usando JSP y que no puedo resolver. El segundo es que estoy teniendo un comportamiento extraño.

Cuando puse esto en el método doGet() del servlet mi

req.setAttribute("test", "SARASA"); 
req.getRequestDispatcher("WEB-INF/main.jsp").forward(req, resp); 

Y esto en "WEB-INF/main.jsp":

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 
<%= request.getAttribute("test") %> 
<c:out value="${test}"/> 

la salida es:

SARASA ${test} 

No sé lo que estoy haciendo mal ... ¿cuál puede ser el motivo?


Actualización: Me lo resolvió añadiendo

<%@ page isELIgnored="false" %> 

En cada JSP cuando lo necesitaba. Curiosamente, no necesitaba eso en otro proyecto usando algunos archivos web.xml y pom.xml muy similares (estoy usando maven).

+0

prueba de representar lo que ?? – confucius

+0

prueba es el nombre del atributo que estaba configurando (ver el servlet), asignado a una cadena que dice "SARASA" – eordano

+0

Consulte también la parte inferior de nuestra página wiki JSTL: http://stackoverflow.com/tags/jstl/info – BalusC

Respuesta

10

Su web.xml probablemente hace referencia a la especificación de Servlet 2.3, en la que isELIgnored está configurado en true de manera predeterminada. Si hace referencia a la especificación Servlet 2.4 en su lugar, isELIgnored se establecerá en false de forma predeterminada.

Si desea hacer referencia a la especificación Servlet 2.4, su cabecera web.xml debe ser algo como esto:

<web-app xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" 
    version="2.4"> 
+0

Gracias. El problema era que no había referencia a nada ... ¡No lo vi porque estaba en el doctype! (Normalmente ignoro eso) eordano

Cuestiones relacionadas