繁体   English   中英

JSTL-输出未达到预期

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM