最近做毕业设计用到Struts2 的标签库,遇到一些比较复杂的数据显示,个人还是比较喜欢用tag显示 的,Struts2 tags内容丰富,但是所提供的文档不是很详细(个人认为)在showcase下的例子 如:<s:select /><s:doubleselect /><s:updownselect /><s:optiontransferselect />等都是一些简单的值显示,在实际的开发中并没有那么简单, 如果我们要迭代显示List、Map、Set里的值,我们该怎样做呢?
看看html里的例子,
<select name="sex">
<option value="man">男 </option>
<option value="women">女</option>
</select>
Sex表示提交的name,man/women是对应页面显示提交后所代表的值,男/女则为页面最终看到的值
而如果我们要显示一个List集合里的数据该怎么做呢?
看下面的Jsp页面:
<select name="department">
<%
Department department = null;
List list = (List) request.getAttribute("list");
Iterator iter = list.iterator();
while (iter.hasNext()) {
department = (Department) iter.next();
%>
<option value="<%=department.getDep_name() % >"><%=department.getDep_name()% > </option>
<%
}
%>
</select>
迭代的是Department的属性dep_name,这样显示显得很麻烦,如果Iterator输出可能会好点,采用JSTL 输出:
<c:forEach var="department" items="" varStatus="status">
<tr>
<td>${status.dep_name }</td>
<td>${status.dep_id }</td>
<td>......</td>
</tr>
</c:forEach>