我有一个简单的测试页面,其中包含以下语句,但似乎Tomcat没有处理$ {}标记,并且我在日志中没有错误。
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>JSTL Test Example</title>
<body>
Setting value using c:out <c:set var="name" scope="request" value="Testing" /><br>
Value is: <b><c:out value="${name}"/></b><br>
</body>
</html>
浏览器输出: 使用c:out设置值 价值是:$ {name}
使用https://stackoverflow.com/tags/jstl/info中的信息 我验证了 1)Tomcat lib有jstl.2 jar,没有重复的jar - 如果我删除这个jar我得到一个很大的例外抱怨丢失标记类。 2)我的webapp在类路径中没有jstl jar。 3)Tomcat web.xml具有正确的servlet规范
<web-app
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
非常感谢任何帮助。 感谢
答案 0 :(得分:0)
他们可能是jsp-api jar的冲突
从tomcat lib中删除jstl.version.jar
并在项目中直接添加依赖项
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
然后试试!