Java JSTL变量未在EL中显示
JSTL变量值不显示在EL中。例如,此代码:Java JSTL变量未在EL中显示,java,jsp,spring-mvc,jstl,el,Java,Jsp,Spring Mvc,Jstl,El,JSTL变量值不显示在EL中。例如,此代码: <%@ 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:
<%@ 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>
浏览器显示:${someVar}
我正在使用SpringMVC3和Maven构建示例项目,并将其部署到Tomcat7。
在Spring的上下文中,我将视图解析器配置如下:
<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>
从Spring控制器传递的模型变量也未显示
Mavens pom.xml具有以下与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>
javax.servlet
jstl
1.2
运行时
javax.servlet.jsp
jsp api
2.1
假如
那么,有什么建议可以解决这个问题吗?那么,(那些${}
东西)就不会被执行了?当您使用JSTL 1.1或更新版本时,servletcontainer在Servlet2.3/JSP 1.2 modus或更低版本上运行时,可能会发生这种情况。在从JSTL 1.0更改为1.1的过程中,EL从JSTL移动到JSP中。这就是JSP2.0,它是Servlet2.4的一部分。jsp1.2及更早版本没有绑定EL。JSTL1.1及更新版本没有绑定EL
您需要确保web.xml
根声明至少符合Servlet 2.4。当您使用JSP2.1时,它是Servlet2.5的一部分,显然您的目标是与Servlet2.5兼容的容器。因此,请确保您的web.xml
根声明符合Servlet 2.5:
然而,Tomcat7是一个与Servlet3.0兼容的容器。我会考虑更改Maven POM来声明servlet 3 /JSP 2.2,这样您就可以受益于所有新的Servlet 3特性。
另见:
<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>