<span role="treeitem" class="nodeLabelBox repTarget ">今天在做项目的时候发现需要用到下拉框,但是本人又不想写成固定的select框,所以只好找找有没有可以自动填充的下拉列表框</span>
我记得做struts2项目的时候有个S:select标签,但是那个标签必须经过struts2的拦截器才能使用那个标签,我就查了一下其他的
就发现了from:select标签,网上的具体使用资料我也没有找到,自己简单总结一下吧
<form:select path="dt.name" items="${dtList}" itemLabel="id"
itemValue="name"></form:select>
上面这段代码对应着下面这个自动生成的select下拉列表框
<select id="name" name="name">
<option value="11">1</option>
<option selected="selected" value="22">2</option>
<option value="33">3</option>
<option value="44">4</option>
<option value="55">5</option>
</select>
其中 path对应着id和name
items表示你要遍历的列表,这里是list列表,map集合没有尝试,如果有需要大家可以试试,实在不行的话就转化一下集合类型吧
itemLable表示显示的内容也就是
itemValue属性表示的是option中的value属性
而当path中和itemValue中写的是同一个属性,我这里都是name 后台传递时
List<Department> dtList = new ArrayList<Department>();
Department dt = new Department();
dt.setId("1");
dt.setName("11");
dtList.add(dt);
Department dt2 = new Department();
dt2.setId("2");
dt2.setName("22");
dtList.add(dt2);
Department dt3 = new Department();
dt3.setId("3");
dt3.setName("33");
dtList.add(dt3);
Department dt4 = new Department();
dt4.setId("4");
dt4.setName("44");
dtList.add(dt4);
Department dt5 = new Department();
dt5.setId("5");
dt5.setName("55");
dtList.add(dt5);
Department dt6 = new Department();
dt6.setId("2");
dt6.setName("22");
mv.addObject("dtList",dtList);
mv.addObject("dt",dt6);
会根据单个的对象来确定选择哪个列表项