在JSP中启用JavaServerPages标准标记库(JSTL)
我觉得我遗漏了一些东西——从表面上看,JSP是开箱即用的,支持标记,如图所示(这家伙问了一个纯JSP问题,得到了一个涉及标记的答案)。 但是如果我尝试运行给定的代码在JSP中启用JavaServerPages标准标记库(JSTL),jsp,jstl,Jsp,Jstl,我觉得我遗漏了一些东西——从表面上看,JSP是开箱即用的,支持标记,如图所示(这家伙问了一个纯JSP问题,得到了一个涉及标记的答案)。 但是如果我尝试运行给定的代码 <c:out value="${myString}"/> (当然,对于前面定义的myString),jsp只是将上述行写入html 我需要做一些额外的事情来启用它吗?您需要在JSP的顶部声明标记库: <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefi
<c:out value="${myString}"/>
(当然,对于前面定义的myString
),jsp只是将上述行写入html
我需要做一些额外的事情来启用它吗?您需要在JSP的顶部声明标记库:
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
JSTL支持取决于所使用的服务器/servletcontainer。有些船有JSTL,有些船没有。这与JSP/Servlet版本无关。通常,普通的JEE服务器(如WildFly/Payara/TomEE)已经附带了JSTL,但是像Tomcat/Jetty/Undertow这样的简陋的servletcontainers却没有。对于它们,您需要自己安装JSTL 它实际上非常简单(假设您使用的是Servlet2.5或更高版本):
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
web.xml
与TLD声明混在一起。您永远不应该这样做,这是一个错误的建议,它是由JSTL 1.0->JSTL 1.1步骤中taglib URI的更改引起的。人们没有更新JSP中的标记库URI,而是决定在web.xml
中重新定义旧的标记库URI,这成了一个神话
JSP本身只附带了开箱即用的
标记。这些都不是JSTL的一部分
另见:
谢谢这看起来是朝着正确的方向迈出的一步,但仍然不是一个确切的答案,因为我得到了异常
org.apache.jasper.jaspereException:the absolute uri:http://java.sun.com/jsp/jstl/core 无法在web.xml或与此应用程序一起部署的jar文件中解析
,如果我需要安装某些东西,这很好,但我认为这个标记库是用jsp“开箱即用”的。“你能考虑把这个答案添加到你的答案吗?”诺姆:它只在某些版本的JSP(2和更大,在这种情况下)出来。但是你没有告诉我们你的设置,所以我不能给你一个更好的答案。斯卡夫曼,这实际上不是真的。这取决于所使用的服务器。