JSTL taglib URI已经过时了?

时间:2009-05-10 18:09:50

标签: java jstl

我一直在查看Spring MVC教程并从那里复制了这个小的JSP代码:

<%@ page session="false"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<html>
    <head><title>Training, Inc.</title></head>
    <body>
        <h2><c:out value="${message}" /></h2>
    </body>
</html>

为消息设置了一个字符串,c:out标签只是按字面打印

$ {消息}

我一直在打我的头,直到我记得我之前遇到的一个问题并将taglib URI更改为:

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>

这解决了我的小问题

前段时间我在XSLT转换方面遇到了类似问题,但在这种情况下,我必须从 http://java.sun.com/jstl/xml 更改为 http://java.sun.com/jsp/jstl/xml

根据这个link我的春天的例子应该像我从春季教程中粘贴一样工作

问题是: 你们中的任何人都知道这些taglib URI混淆的记录在哪里?为什么在某些情况下我从http://java.sun.com/jsp/jstl获得了最新版本,而在其他版本中我从http://java.sun.com/jstl获得了最后一个版本

2 个答案:

答案 0 :(得分:2)

是的,众所周知,taglibs的URI在JSTL版本1.0和1.1之间发生了变化。如果您碰巧得到使用旧标准的示例并尝试将它们与新的taglib JAR一起使用,那么您将遇到此问题。

答案 1 :(得分:2)

如果您仍然遇到此错误,但是您正在手工制作您的pom,那么您可能错过了标准库。 例如我错过了

    <dependency>
        <groupId>taglibs</groupId>
        <artifactId>standard</artifactId>
        <version>${jstl.version}</version>
    </dependency>