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