Jsp 使用jstl遍历列表

Jsp 使用jstl遍历列表,jsp,jstl,Jsp,Jstl,我有一个班级线组 在主页上,我想从列表中读取所有数据,并将其放入选择选项中。但是它不是这样工作的 <body> <jsp:useBean id="list" class="beans.LineGroup" scope="request"></jsp:useBean> <form action="SevenServlet" method="POST"> ПЕРВАЯ СТРОКА:<input name="from" type

我有一个班级线组

在主页上,我想从列表中读取所有数据,并将其放入选择选项中。但是它不是这样工作的

<body>

<jsp:useBean id="list" class="beans.LineGroup" scope="request"></jsp:useBean>   

<form action="SevenServlet" method="POST">
    ПЕРВАЯ СТРОКА:<input name="from" type="text"/><br>
    ВТОРАЯ СТРОКА:<input name="to" type="text"/><br>
    <input type="submit" name="send" value="УДАЛИТЬ"/><br>

    <select name="deleted" disabled>
        <jstl:set var="end" value="${list.getLength}"/>
        <jstl:set var="begin" value="0"/>
        <jstl:forEach var="i" begin="begin" end="end" step="1">
            <option value="${i}">${list.getLine(i)}</option>
        </jstl:forEach>
    </select>

</form>
</body>
从列表中获取数据并将其放入“选择选项”的正确方法是什么?

试试以下方法:

<select name="deleted" disabled>
    <jstl:forEach items="${list.lines}" varStatus="line">
        <option value="${line.index}">${line.current}</option>
    </jstl:forEach>
</select>
试试这个:

<select name="deleted" disabled>
    <jstl:forEach items="${list.lines}" varStatus="line">
        <option value="${line.index}">${line.current}</option>
    </jstl:forEach>
</select>

你让事情变得更难了

首先,您不需要使用jsp:useBean。jspel使用反射,并在请求属性中查找它使用的bean

您不需要指定迭代的开始和结束。但是您必须迭代一个Iterable,而您的bean不是。不过,它所包装的列表是可编辑的。所以你只需要:

<body>

<form action="SevenServlet" method="POST">
    ПЕРВАЯ СТРОКА:<input name="from" type="text"/><br>
    ВТОРАЯ СТРОКА:<input name="to" type="text"/><br>
    <input type="submit" name="send" value="УДАЛИТЬ"/><br>

    <select name="deleted" disabled>
        <c:forEach var="line" items="${list.lines}" varStatus="status">
            <option value="${status.index}">${line}</option>
        </c:forEach>
    </select>

</form>
</body>

注意,我对JSTL核心库使用了标准c前缀。使用标准名称有助于提高可编辑性和可维护性。

您让它变得更加困难

首先,您不需要使用jsp:useBean。jspel使用反射,并在请求属性中查找它使用的bean

您不需要指定迭代的开始和结束。但是您必须迭代一个Iterable,而您的bean不是。不过,它所包装的列表是可编辑的。所以你只需要:

<body>

<form action="SevenServlet" method="POST">
    ПЕРВАЯ СТРОКА:<input name="from" type="text"/><br>
    ВТОРАЯ СТРОКА:<input name="to" type="text"/><br>
    <input type="submit" name="send" value="УДАЛИТЬ"/><br>

    <select name="deleted" disabled>
        <c:forEach var="line" items="${list.lines}" varStatus="status">
            <option value="${status.index}">${line}</option>
        </c:forEach>
    </select>

</form>
</body>
注意,我对JSTL核心库使用了标准c前缀。使用标准名称有助于可编辑性和可维护性