日期:2014-05-17 浏览次数:20727 次
最近在写一个系统中,有一个有下拉列表的修改资料功能,对Struts的html:select进行了运用。
其中怎么样使进入修改页面之后,该下拉列表里的数据是该需要修改的数据列的数据字段,也就是使html:select中显示的值默认对应数据库中的值。测试修改了一个下午,总得不出结果,最后还是看了Struts的examples才算是弄出来了,如:
<html:select property="id">
<c:foreach item="rs.rows" var="row">
<html:option value="row.id">
???????
</html:option>
???</c:foreach>????
</html:select>
??????????
<html:select property="c_id">
</html:select>
????
总结:在使用Struts进行修改功能时,要在修改页面上取的数据库先前的值。只要在form中reset里取得数据库里的值,然后在前台页面里html:form里对应的项设置其property为form中对应的属性值就好了,而不需要再设置value属性了。
XXAction{ execute() { request.setAttribute("ids", getNameID()); } private List getNameID() { //load from db ... //make a LabelValueBean List ArrayList ls = new ArrayList(); for() { ls.add(new LabelValueBean(name,id); } } }
<html:select property="id"> <html:optionsCollection name="ids" /> </html:select>
<html:select property="id"> <html:option value="0">无</html:option> <html:optionsCollection name="ids" /> </html:select>
<html:select property="id"> <html:option value="0">无</html:option> <html:optionsCollection name="ids" /> <html:option value="0">