[英]JSTL - Output not coming as expected
以下是我使用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文件夹jstl-1.2.jar中仅有的jar文件
提前致谢
法希姆
注意:将Java和JSP标记添加为具有Java和JSP知识的人员可能也知道JSTL 。
#{name}
不是有效的Java变量引用-好像您将其与JQuery选择器混淆了。 无论如何,请尝试仅使用items =“ $ {name}”
在JSTL 1.2中,您不想在纯JSP中使用#{name},那只是一个JSF工件。 相反,只需使用$ {name}。
#{name}
应该类似于${name}
哦! 可能是与JSTL相关的罐子。 检查Thins 链接以将那些罐子包含在您的项目中
您需要使用$ {name}之类的表达语言来引用项目
您在名称前使用#而不是$
让我知道是否可以解决。
这里,
<%@ taglib prefix = "c" uri="http://java.sun.com/jstl/core"%>
您指定了错误的JSTL taglib URL。 这是针对JSTL 1.0的。 在JSTL 1.1之后,它在路径中需要一个/jsp
。 另请参见JSTL 1.1标记库文档 。
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
至于代码的(并回答所有抱怨使用${}
重复答案),仅当您将Servlet 2.5 / 2.1兼容的容器作为web.xml
对象时, #{}
语法才能在JSP中使用web.xml
符合Servlet 2.5规范的web.xml
。 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>
下面是我正在使用的最终代码,它正在运行...
发布以便有人使用...明天可能会帮助我;)
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/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>
学习:我正在使用<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
而不是<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.