在JSTL中迭代列表

时间:2013-02-27 15:57:56

标签: java jstl

我有控制器文件,其中包含模型中的值列表,如

List caseIds = new ArrayList();
for(int i=0; i<caseLists.size(); i++)
{
    if(caseIds.contains(caseLists.get(i).getCaseId()))
        continue;
    else 
        caseIds.add(caseLists.get(i).getCaseId());             
}
model.put("caseIdList", caseIds);

我希望在下拉框中的UI中显示这个caseIds。我的代码看起来像这样,

<select name="caseIds" id="caseIds">
    <option value="">All</option>
    <c:forEach var="item" items="${model.caseIdList}">
        <option value="<c:out value='${item.caseIdList}'/>" >
            <c:out value="${item.caseIdList}"/>     
        </option>
    </c:forEach>
</select>   

我的意思是我希望下拉(选择框)的id和值为caseId。我知道使用item.caseIdList获取项目时出错。我该怎么办?

2 个答案:

答案 0 :(得分:1)

这是你想要做的:

<select name="caseIds" id="caseIds">
    <option value="">All</option>
    <c:forEach var="item" items="${model.caseIdList}">
        <option value="<c:out value='${item}'/>" >
            <c:out value="${item}"/>     
        </option>
    </c:forEach>
</select>  

由于item包含item.caseIdList,您需要使用caseIdList代替Integer

答案 1 :(得分:1)

jsp中for循环中的

item将是caseLists.get(i).getCaseId()添加的caseId,所以我想你只想要以下内容:

<select name="caseIds" id="caseIds">
    <option value="">All</option>
    <c:forEach var="item" items="${model.caseIdList}">
        <option value="<c:out value='${item}'/>" >
            <c:out value="${item}"/>     
        </option>
    </c:forEach>
</select>