【发布时间】:2013-09-04 19:40:19
【问题描述】:
当我尝试通过添加来测试我的 jstl 库(jstl-1.1.2.jar 和标准 1.1.2.jar)时,它不会在浏览器中显示任何内容。
这是我的 home.jspx:
<?xml version="1.0" encoding="utf-8"?>
<jsp:root
xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns="http://www.w3.org/1999/xhtml"
version="2.1">
<jsp:directive.page contentType="text/html" pageEncoding="UTF-8" />
<jsp:output omit-xml-declaration="true" />
<jsp:output doctype-root-element="HTML"
doctype-system="about:legacy-compat" />
<html lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>gdgdfgdg</title>
</head>
<body>
<h1>fsdf</h1>
<c:out value="Test"/>
</body>
</html>
</jsp:root>
添加了必要的罐子。不知道是什么问题。
编辑:
这是源代码,浏览器接收到:
<!DOCTYPE HTML SYSTEM "about:legacy-compat">
<html lang="en">
<head>
<meta content="text/html; charset=utf-8" http-equiv="content-type"/>
<title>gdgdfgdg</title>
</head>
<body>
<h1>fsdf</h1>
<c:out value="TEST"/>
</body>
</html>
我向 maven 添加了以下依赖项,它正确加载了顶部描述的正确 jar ..
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
【问题讨论】:
-
你需要更具体。您究竟是如何安装 JSTL 的?生成的 HTML 输出到底是什么?您的意思是,当您在浏览器中打开页面并执行右键单击并查看源代码时,您会看到
<c:out>仍然是原始的且未解析的吗?到目前为止,您似乎根本没有正确安装 JSTL。将[jstl]标签悬停在问题下方,然后单击信息链接获取说明。 -
刚刚编辑了我的问题.. 抱歉,谢谢
-
不,不,JSTL标签根本没有被正确解析!您不应该在生成的 HTML 输出中看到任何 JSP 标记库工件。它们应该由服务器解析和执行并生成 HTML 输出(网络浏览器根本不理解 JSP,它只理解 HTML)。您应该在生成的 HTML 输出中只看到
TEST而不是<c:out value="TEST"/>。好吧,回到原因:你原来是在使用 Maven。对不起,这超出了我的范围。我至少添加了[maven]标签,以便您得到正确的关注。祝你好运。 -
但是整个标签不解释为文本?这怎么可能发生?谢谢你的帮助..
-
我不知道你到底是什么意思,所以我会忽略那部分。事实上,JSTL 标签并没有被解析。可能的原因是没有声明或安装 JSTL。它已正确声明,因此可能未安装。换句话说,JSTL 不存在于 webapp 的运行时类路径中。就您而言,Maven 负责该部分。所以 Maven 配置明显有问题。也许你使用了完全错误的坐标。