如何在jsp中的jstl中迭代对象列表

时间:2014-08-01 06:00:38

标签: java jsp jstl

我正在尝试使用jstl迭代jsp中的对象列表。我希望每个param名称都有一个包含param值的下拉列表。

jsp代码:

<c:if test="${fn:length(listOfParams) gt 0}">
    <h2>Yo YO</h2>
    <c:forEach var="param" items="${listOfParams}">
        <h3>${param.paramName}</h3>
        <select name="${param.paramName}" id="${param.paramName}"
            class="target">
            <c:forEach var="listOfParamValue" items="${param.listOfParamValue}">
                <option><c:out value="${listOfParamValue}" /></option>
            </c:forEach>
        </select>
    </c:forEach>
</c:if>

控制器代码:

    DTEJob dteJob2 = new DTEJob();
    dteJob2.setParamName("ABC");
    dteJob2.addTolistOfParamValue("val1");
    dteJob2.addTolistOfParamValue("val2");
    dteJob2.setDefault(true);
    paramList.add(dteJob2);
    model.addAttribute("listOfParams", paramList);

输出:

Yo YO和2个空降。

任何人都可以帮助我无法检索jstl中的值吗?任何帮助将不胜感激,因为我是jsp和jstl的新手。

我的bean类是:

private String paramName;
private List<String> listOfParamValue=new ArrayList<String>();

public List<String> getListOfParamValue() {
    return listOfParamValue;
}

public String getParamName() {
    return paramName;
} 

3 个答案:

答案 0 :(得分:1)

var="param"更改为var="p"param以外的任何内容,因为param用于访问请求参数。

<c:forEach var="p" items="${listOfParams}">

${param.paramName}表示访问paramName作为不存在的请求参数。

详细了解JSP - Implicit Objects

  

param:将请求参数名称映射到单个值

答案 1 :(得分:0)

试试这个,

<c:if test="${not empty listOfParams}">
    <h2>Yo YO</h2>
    <c:forEach var="param" items="${listOfParams}">
        <h3>${param.paramName}</h3>
        <select name="${param.paramName}" id="${param.paramName}"
            class="target">
            <c:forEach var="temp" items="${2nd list name here}">
                <option><c:out value="${temp.listOfParamValue}"></c:out></option>
            </c:forEach>
        </select>
    </c:forEach>
</c:if>

items属性中的列表是独立的

答案 2 :(得分:0)

user3218114是正确的。问题是我使用的是“param”。。param用于访问请求参数。