Struts中将数据库中的内容动态生成<html:select/> <html:option> <html:options>列表内容
现在假设我们要实现这样的功能:
修改某学生所在的系:
DeptForm 中:
private String id;
private String name;
/** 这里省略了这个两个属性的getter, setter方法*/
StudentForm 中:
private String studentname ;
private String deptid ;
private String deptname ;
/** 这里省略了这个两个属性的getter, setter方法*/
Action 中
1. 首先要从数据库中读取学生的信息,封装在StudentForm的对象student里
并把这个对象 student存放到session中
session.setAttribute("student", student);
2. 再从数据库读取所有的系,封装在一个List<DeptForm>的对象list里,并把这个对象放到session中
session.setAttribute("dept_list", list);
以便在动态填充下拉列表
JSP 页面中:
<logic:notEmpty name="dept_list">
<html:select name="student" property="deptid">
<html:options collection="dept_list" property="id" labelProperty="name"/>
</html:select>
</logic:notEmpty>
在<html:select name="student" property="deptid">中设置了name属性,就可以实现下拉列表中的默认值的设置。而这个默认值就是在上面第1步中封装了学生信息的student对象(最后放到了session中)里的deptid属性的值。或者可以这样说,从student表中查询某一个学生信息表,再从dept中查询出所有的系别信息。当该学生信息中的deptid等于系别信息中的id时,下拉列表中就默认显示该deptid对应的deptname。