Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java jstl迭代错误_Java_Jstl - Fatal编程技术网

Java jstl迭代错误

Java jstl迭代错误,java,jstl,Java,Jstl,我想将该值绑定到dropdownlist,该值是从数据库检索的 我希望结果如下所示: <option value=Sick>Sick</option> <option value=Funeral>Funeral</option> <option value=Trip>Trip</option>

我想将该值绑定到dropdownlist,该值是从数据库检索的

我希望结果如下所示:

    <option value=Sick>Sick</option>                      
    <option value=Funeral>Funeral</option>                  
    <option value=Trip>Trip</option>                    
    <option value=Others>Others</option>             
这是我的JSP:

<c:forEach items="${arrLeave}" var="arrLeave">
<option value=${arrLeave.reason}>${arrLeave.reason}</option>
</c:forEach>

${arrLeave.reason}

有什么问题?谢谢

您只有一个
le
类实例,因此无论最后一个原因是什么,都将获得n个副本

为结果集中的每一行创建一个新实例:

while (rs.next()) {
    arrLeave.add(new Leave(rs.getString("lr_name")));
}

您正在更新同一对象并将其添加到列表中

le.setReason(rs.getString("lr_name")) -> same object updated over all iteration
在设置原因之前,使用新运算符初始化le

<BeanName> le = new <BeanName>();
le.setReason(rs.getString("lr_name"));
le=new();
le.setReason(rs.getString(“lr_名称”);

Leave le=new Leave()这是我之前创建的实例,这意味着我必须再创建一个实例?@user1154655。。。您必须为结果集中的每一行创建一个。@user1154655?SKS已经告诉你了,我已经告诉你了。请参阅更新的答案。对不起,我是JSP新手。但我已经解决了这个问题!谢谢。@user1154655这不是JSP问题;这是Java的一个基本特性:如果您一直引用同一个对象,那么您就是在修改单个实例。
le.setReason(rs.getString("lr_name")) -> same object updated over all iteration
<BeanName> le = new <BeanName>();
le.setReason(rs.getString("lr_name"));