15

我一直在查看 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>

为 message 设置了一个字符串,并且 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

根据这个链接,我的 spring 示例应该像我从 spring 教程中粘贴的那样工作

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

4

2 回答 2

2

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

于 2009-05-10T18:18:47.840 回答
2

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

    <dependency>
        <groupId>taglibs</groupId>
        <artifactId>standard</artifactId>
        <version>${jstl.version}</version>
    </dependency>
于 2011-01-02T18:11:12.587 回答