使用MAven创建了一个新的Spring MVC项目,我遇到了一个问题,即在jsp页面上没有替换modelAttributes。例如,
<%@ page session="false"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ page contentType="text/html" %>
Hello Worlds ${location} is ${weathers}
<c:out value="${location}"/>
显示器
Hello Worlds ${location} is ${weathers}
${location}
而不是
Hello Worlds Omaha is Cold
Omaha
我猜我错过了一个jar,我在mvn依赖列表中有以下内容:
<dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.2</version> </dependency> <dependency> <groupId>org.apache.geronimo.specs</groupId> <artifactId>geronimo-servlet_2.4_spec</artifactId> <version>1.1.1</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.4</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring</artifactId> <version>2.0.7</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>2.5.5</version> </dependency>
答案 0 :(得分:4)
我引用我之前提供的answer来解决EL无法正常工作的问题:
换句话说,EL表达式没有得到评估?这可能有以下一个或多个原因:
- 有问题的应用程序服务器不支持JSP 2.0。
web.xml
未声明为Servlet 2.4或更高版本。@page
配置了isELIgnored=true
。- web.xml在
醇><el-ignored>true</el-ignored>
中配置了<jsp-config>
。
在您的特定情况下,1)可能会被划伤。 3)和4)太明显无法监督,因此也可能被划伤。留下第2点)。您的web.xml
显然是使用旧版本声明的。确保您的web.xml
被声明为至少 Servlet 2.4:
<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">
<!-- Here you go. -->
</web-app>
答案 1 :(得分:3)
我想你的servlet容器正在使用JSP pre-2.0,默认情况下会忽略EL。检查与其捆绑的内容。
无论如何,您必须指定以下内容:
<%@ page isELIgnored="false" %>