JSTL taglib URI已经过时了?

vic*_*ugo 14 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>
Run Code Online (Sandbox Code Playgroud)

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

$ {}消息

我想了一会儿,直到我记得我之前遇到的问题,并将taglib URI更改为:

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
Run Code Online (Sandbox Code Playgroud)

这解决了我的小问题

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

根据这个链接,我的春天示例应该像我从spring教程粘贴时一样工作

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

duf*_*ymo 2

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