我想将值绑定到dropdownlist,从数据库中检索该值。
我希望结果如下:
<option value=Sick>Sick</option>
<option value=Funeral>Funeral</option>
<option value=Trip>Trip</option>
<option value=Others>Others</option>
但现在我得到的结果如下:
<option value=Others>Others</option>
<option value=Others>Others</option>
<option value=Others>Others</option>
<option value=Others>Others</option>
这是我的java代码:
while(rs.next()){
le.setReason(rs.getString("lr_name"));
arrLeave.add(le);
}
request.setAttribute("arrLeave", arrLeave);
这是我的JSP:
<c:forEach items="${arrLeave}" var="arrLeave">
<option value=${arrLeave.reason}>${arrLeave.reason}</option>
</c:forEach>
有什么问题?谢谢 !
答案 0 :(得分:0)
您只有一个le
类实例,因此无论上一个原因是什么,都会获得 n 副本。
为结果集中的每一行创建一个新实例:
while (rs.next()) {
arrLeave.add(new Leave(rs.getString("lr_name")));
}
答案 1 :(得分:0)
您正在更新同一个对象并将其添加到列表中。
le.setReason(rs.getString("lr_name")) -> same object updated over all iteration
在设置原因之前使用new运算符初始化le ..
<BeanName> le = new <BeanName>();
le.setReason(rs.getString("lr_name"));