今天在进行struts+hibernate开发的时候,JSP页面中form表单的下拉列表的选项是从Action通过request域对象传过来的。可以利用 c:forEach 标签循环进行显示。
具体如下:
1、在Action中,将域对象放入request中
Map<String,Object> requestMap = (Map<String, Object>) ac.get("request");
requestMap.put("showIdList", showIdList);
2、在JSP页面中,select标签中嵌套 forEach 进行循环遍历,实现下拉列表的效果。
<form action="${pageContext.request.contextPath }/submitMessage" method="post">
<table border="1" cellspacing="0" cellpadding="10">
<tr><td>接收人</td>
<td><select name="getterIndex">
<c:forEach items="${showIdList }" var="userId">
<option value="${userId }">${userId }</option>
</c:forEach>
</select></td></tr>
<tr><td>信息内容</td><td><textarea rows="5" cols="20" name="content">请输入信息...</textarea></td></tr>
<tr><td><input type="submit" value="提交"/></td>
<td><input type="reset" name="重置"/></td></tr>
</table>
</form>
-------------------------------------------
在网上看到 option 标签中,还是可以进行 条件判断,记下已备后用:
<select id="user_id" name="user_id">
<c:forEach items="${users}" var="u">
<option value="${u.id }" <c:if test="${user.user_id==u.id}"><c:out value="selected"/></c:if>>
${u.name}
</option>
</c:forEach>
</select>