我觉得我遗漏了一些东西——从表面上看,jsp提供了对标记的支持,正如这个问题的答案所示(这个人问了一个纯jsp问题,得到了一个涉及标记的答案)。但是如果我尝试运行给定的代码
<c:out value="${myString}"/>
(有 myString 当然,jsp只是将上面的行写入html。我需要做一些额外的事情来启用它吗?
myString
dwthyt8l1#
jstl支持取决于所使用的服务器/servletcontainer。有些船有jstl,有些船没有。这与jsp/servlet版本无关。通常,普通的jee服务器(如wildfly/payara/tomee)已经附带了jstl,但是像tomcat/jetty/undertow这样的简陋的servletcontainers却没有。对于它们,您需要自己安装jstl。它实际上非常简单(假设您使用的是Servlet2.5或更高版本):按照以下答案中的说明安装jstl:如何安装jstl?绝对uri:http://java.sun.com/jstl/core 无法解决。根据此jstl文档在jsp顶部声明标记(单击任何标记库查看声明示例)。对于jstl core,它如下所示:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
这就是全部。如果您(仍然)使用Servlet2.4,那么您需要下载 jstl.jar 和 standard.jar 相反(这是jstl 1.1的一部分)。剩下的步骤是相同的(只需放入classpath并在jsp顶部声明)。您可能会注意到,一些糟糕的在线教程会建议提取jar文件并将Web应用程序的内容弄乱 web.xml 使用tld声明。您永远不应该这样做,这是一个错误的建议,它是由jstl 1.0->jstl 1.1步骤中taglib uri的更改引起的。他们没有更新jsp中的标记库uri,而是决定在jsp中重新定义旧的标记库uri web.xml 这成了一个神话。jsp本身只附带 <jsp:> 开箱即用的标签。这些不是jstl的一部分。
jstl.jar
standard.jar
web.xml
<jsp:>
javaee到底是什么?如何安装jstl?绝对uri:http://java.sun.com/jstl/core 无法解决
mxg2im7a2#
您需要在jsp顶部声明标记库:
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
s8vozzvw3#
在pom xml文件中添加jstl依赖项文件(如果使用maven项目),否则将jstl jar文件添加到项目中在jsp中添加要使用jstl标记的下一行-<%@taglib prefix=“c”uri=”http://java.sun.com/jsp/jstl/core" %>在您的代码中,您使用的是jstl标记和表达式语言,它被写成${mystring}。要支持表达式语言,必须在page指令中设置isAligned=“false”属性<%@page language=“java”contenttype=“text/html;charset=iso-8859-1“pageencoding=“iso-8859-1”IsAligned=“false”%%>
3条答案
按热度按时间dwthyt8l1#
jstl支持取决于所使用的服务器/servletcontainer。有些船有jstl,有些船没有。这与jsp/servlet版本无关。通常,普通的jee服务器(如wildfly/payara/tomee)已经附带了jstl,但是像tomcat/jetty/undertow这样的简陋的servletcontainers却没有。对于它们,您需要自己安装jstl。
它实际上非常简单(假设您使用的是Servlet2.5或更高版本):
按照以下答案中的说明安装jstl:如何安装jstl?绝对uri:http://java.sun.com/jstl/core 无法解决。
根据此jstl文档在jsp顶部声明标记(单击任何标记库查看声明示例)。对于jstl core,它如下所示:
这就是全部。如果您(仍然)使用Servlet2.4,那么您需要下载
jstl.jar
和standard.jar
相反(这是jstl 1.1的一部分)。剩下的步骤是相同的(只需放入classpath并在jsp顶部声明)。您可能会注意到,一些糟糕的在线教程会建议提取jar文件并将Web应用程序的内容弄乱
web.xml
使用tld声明。您永远不应该这样做,这是一个错误的建议,它是由jstl 1.0->jstl 1.1步骤中taglib uri的更改引起的。他们没有更新jsp中的标记库uri,而是决定在jsp中重新定义旧的标记库uriweb.xml
这成了一个神话。jsp本身只附带
<jsp:>
开箱即用的标签。这些不是jstl的一部分。另见:
javaee到底是什么?
如何安装jstl?绝对uri:http://java.sun.com/jstl/core 无法解决
mxg2im7a2#
您需要在jsp顶部声明标记库:
s8vozzvw3#
在pom xml文件中添加jstl依赖项文件(如果使用maven项目),否则将jstl jar文件添加到项目中
在jsp中添加要使用jstl标记的下一行-<%@taglib prefix=“c”uri=”http://java.sun.com/jsp/jstl/core" %>
在您的代码中,您使用的是jstl标记和表达式语言,它被写成${mystring}。要支持表达式语言,必须在page指令中设置isAligned=“false”属性
<%@page language=“java”contenttype=“text/html;charset=iso-8859-1“pageencoding=“iso-8859-1”IsAligned=“false”%%>