当前位置: 首页 > 面试题库 >

在JSP内部使用for循环

弘和同
2023-03-14
问题内容

我想遍历“节日” 的 ArrayList 并使用 get 方法获取其信息,并打印出其所有值。由于某些原因,当我使用此代码时,它将始终选择第“
0”个值,而不增加循环。

如果我将值硬编码为“ get(1)”,它将获得正确的值,因此我的问题显然是语法。

<h1>All Festival Information</h1>
    <jsp:useBean id="allFestivals" type="java.util.ArrayList" scope="session" />
    <table border="1">
        <tr>
            <td>Festival Name:</td>
            <td>Location:</td>
            <td>Start Date:</td>
            <td>End Date:</td>
            <td>URL:</td>
        </tr>
        <% for(int i = 0; i < allFestivals.size(); i+=1) { %>
            <tr>      
                <td>${allFestivals.get(i).getFestivalName()}</td>
                <td>${allFestivals.get(i).getLocation()}</td>
                <td>${allFestivals.get(i).getStartDate()}</td>
                <td>${allFestivals.get(i).getEndDate()}</td>
                <td>${allFestivals.get(i).getURL()}</td>  
            </tr>
        <% } %>
    </table>

问题答案:

造成具体问题的原因是,您将灰心丧气的旧式_脚本_<%%>和其后继EL混合在一起${}。它们不共享相同的变量范围。在allFestivals中不可用 _scriptlet的_范围和i在EL的范围并不适用。

您应该安装JSTL(<-单击说明链接),并在JSP顶部声明它,如下所示:

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

然后遍历列表,如下所示:

<c:forEach items="${allFestivals}" var="festival">
    <tr>      
        <td>${festival.festivalName}</td>
        <td>${festival.location}</td>
        <td>${festival.startDate}</td>
        <td>${festival.endDate}</td>
        <td>${festival.URL}</td>  
    </tr>
</c:forEach>

当心可能的[ XSS攻击孔,请相应地使用<c:out>

当您将servlet用作模型和视图控制器时,请不要忘记 删除
<jsp:useBean>因为在这里它没有任何价值。这只会导致混乱。此外,您还可以通过输入以下内容来禁用 脚本
web.xml以免意外使用它们:

<jsp-config>
    <jsp-property-group>
        <url-pattern>*.jsp</url-pattern>
        <scripting-invalid>true</scripting-invalid>
    </jsp-property-group>
</jsp-config>


 类似资料:
  • 您能像这样在JSX中使用循环吗? 或者更确切地说,像这样编写的最佳方法是什么?

  • 我试图在for循环中获得for循环,因此输出如下: 我希望输出显示一个正方形 我不知道它为什么不这样做。下面是我的代码:

  • 我试图在任意年份的经济衰退中计算复利。以下promise函数计算可变投资组合的发展。 编辑的清晰度: const是一个从1到20循环一年的数组(是静态的) 三元()在每次运行的不同年份触发,导致不同年份的

  • 本文向大家介绍Python-for循环的内部机制,包括了Python-for循环的内部机制的使用技巧和注意事项,需要的朋友参考一下 Python中,使用for循环可以迭代容器对象中的元素,这里容器对象包括是列表(list)、元组(tuple)、字典(dict)、集合(set)等。但是,为什么这些对象可以使用for循环进行操作呢? 首先,定义一个简单的类尝试一下: 错误信息提示,'TestRange

  • 问题内容: 我有一个整数数组。 我想为每个X创建一个沿Y迭代的线程。我不知道如何将适当的X值传递给每个线程。 本质上我希望能够做到 任何帮助,将不胜感激 问题答案: 只值可以的方法和本地匿名内部类内被捕获。您需要按以下方式更改代码:

  • 问题内容: 我在进行函数调用时试图找到for-each循环的工作方式。请参阅以下代码, 在版本1中,我在for- each循环中调用returnArr()方法,在版本2中,我显式调用returnArr()方法并将其分配给数组,然后对其进行迭代。两种方案的结果都相同。我想知道哪个更有效以及为什么。 我认为版本2会更高效,因为我不会在每次迭代中都调用method。但是令我惊讶的是,当我使用版本1调试代