gpt4 book ai didi

java - JSTL - 输出未按预期输出

转载 作者:行者123 更新时间:2023-12-01 05:31:58 26 4
gpt4 key购买 nike

下面是我使用 jSTL 1.2 在 index.jsp 中的代码。

 <%@ taglib prefix = "c" uri="http://java.sun.com/jstl/core"%>
<% String[] setName = {"Hello", "you", "are", "using", "jstl", "in", "jsp"};
request.setAttribute("getName", setName);
%>
<html>
<body>
<table>
<tr><td>Print</td></tr>
<c:forEach var="itemName" items="#{getName}" >
<tr>
<td>${itemName}</td>
</tr>
</c:forEach>
</table>
</body>
</html>

我期望的输出如下

 Print
Hello
you
are
using
jstl
in
jsp

但是下面是我得到的

  Print
#{name}

请让我知道我失踪的地方

下面是我在 WEB-INF/lib 文件夹中唯一的 jar 文件 jSTL-1.2.jar

提前致谢

法希姆

注意:添加Java和JSP标签,因为了解Java和JSP的人可能也知道JSTL...

最佳答案

这里,

<%@ taglib prefix = "c" uri="http://java.sun.com/jstl/core"%>

您指定了错误的 JSTL 标记库 URL。这是针对 JSTL 1.0 的。在 JSTL 1.1 之后,路径中需要有 /jsp。另请参阅JSTL 1.1 tag library documentation .

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

至于代码(并回复所有提示使用 ${} 代替的重复答案),#{} 语法仅在内部有效当您的目标是具有符合 Servlet 2.5 规范的 web.xml 的 Servlet 2.5/2.1 兼容容器时,使用 JSP。 Tomcat 6.0 就是此类容器的一个示例。 #{} 确实无法在 Tomcat 5.5 或更早版本等较旧容器上的 JSP 标记中工作。

为了清楚起见并避免初学者混淆,最好在 JSP 标记中始终使用 ${}。最好也使用自记录变量名称。

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
String[] names = {"Hello", "you", "are", "using", "jstl", "in", "jsp"};
request.setAttribute("names", names);
%>
<!DOCTYPE html>
<html lang="en">
<head>
<title>JSTL demo</title>
</head>
<body>
<table>
<tr><td>Print</td></tr>
<c:forEach items="${names}" var="name">
<tr><td>${name}</td></tr>
</c:forEach>
</table>
</body>
</html>

另请参阅:

关于java - JSTL - 输出未按预期输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8830485/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com