tag listar lib formulario biblioteca agregar java jsp spring-mvc jstl el

java - lib - jstl listar



Las variables JSTL no se muestran en EL (1)

Esta pregunta ya tiene una respuesta aquí:

Los valores de la variable JSTL no se muestran en EL. Por ejemplo, este código:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="s" uri="http://www.springframework.org/tags" %> <html> <body> <c:forEach var="i" begin="1" end="5" > <c:out value="${i}" /> </c:forEach> </body> </html>

el navegador muestra como: ${i} ${i} ${i} ${i} ${i}

O este:

<c:set var="someVar" value="Hello"/> <c:out value="${someVar}"/>

muestra el navegador: ${someVar}

Estoy usando Spring-MVC 3 y Maven para construir el proyecto de muestra, desplegándolo en Tomcat 7. En el contexto de Spring, tengo la resolución de la vista configurada de la siguiente manera:

<bean class= "org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value=" org.springframework.web.servlet.view.JstlView"></property> <property name="prefix" value="/WEB-INF/"></property> <property name="suffix" value=".jsp" /> </bean>

Las variables del modelo aprobadas desde el controlador de Spring no se muestran también.

Mavens pom.xml tiene las siguientes dependencias relacionadas con jstl:

<dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> <scope>runtime</scope> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.1</version> <scope>provided</scope> </dependency>

Entonces, ¿alguna sugerencia de cómo resolver esto?


Entonces, ¿el EL (esas ${} cosas) no se ejecuta? Eso puede suceder cuando su servletcontainer se ejecuta en el modo Servlet 2.3 / JSP 1.2 o inferior, mientras está utilizando JSTL 1.1 o posterior. Durante el cambio de JSTL 1.0 a 1.1, EL pasó de JSTL a JSP. Eso fue JSP 2.0, que es parte de Servlet 2.4. JSP 1.2 y versiones anteriores no tienen EL incluido. JSTL 1.1 y versiones posteriores no tienen EL incluido.

web.xml asegurarse de que su declaración raíz web.xml cumpla al menos el Servlet 2.4. Como está utilizando JSP 2.1, que es parte de Servlet 2.5, aparentemente se está dirigiendo a un contenedor compatible con Servlet 2.5. Por lo tanto, asegúrese de que su declaración de raíz web.xml cumpla con Servlet 2.5:

<?xml version="1.0" encoding="UTF-8"?> <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_5.xsd" version="2.5"> <!-- Config here. --> </web-app>

Sin embargo, Tomcat 7 es un contenedor compatible con Servlet 3.0. Consideraría cambiar maven pom para declarar Servlet 3.0 / JSP 2.2 para que pueda beneficiarse con todas las características nuevas de Servlet 3.0.

Ver también: