【发布时间】:2014-10-30 07:08:30
【问题描述】:
我在 spring 控制器类中生成 json 对象,如下所示
My Controller Class:
Map<String,Object> model=new HashMap<String,Object>();
model.put("project", project);
model.put("roles", userService.dispRoles());
for(int i=0;i<phaseList.size();i++){
TblProjectPhase projectPhase=phaseList.get(i);
try {
json=new JSONObject();
json.put("phasename", projectPhase.getPhaseName());
json.put("remain", getRemainingResource(projectPhase));
json.put("users",sessionfactory.getCurrentSession().createCriteria(TblProjectResource.class)
.add(Restrictions.eq("tblProjectPhase",phase))
.list());
ja.put(json);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
JSONObject res=new JSONObject();
res.put("result", ja);
model.put("userList",res );
我的 json 对象如下所示
{"result":[
{"phasename":"BVFD Phase1",
"remain":0,
"users":
["TblProjectResource@1cb5e384",
"TblProjectResource@1cb5e385"]
}
]}
我试图在我的 jstl 核心中迭代它,如下所示
<c:choose>
<c:when test="${not empty model.userList }">
<c:forEach var="user" items="${model.userList}">
<c:forEach var="child" items="${user.result}">
<c:out value="${child.phasename}"/>
<c:forEach items="child.users" var="u">
<c:out value="u.name"/>
</c:forEach>
</c:forEach></c:when>
<c:otherwise>No Users Availble In this Phase</c:otherwise></c:choose>
但是我的代码在浏览器中抛出异常。异常是
javax.servlet.ServletException: javax.servlet.jsp.JspTagException: Don't know how to iterate over supplied "items" in <forEach>
如何使用 jstl 在我的 json 中迭代 coorect 方式? 任何帮助将不胜感激!!!
【问题讨论】:
-
JSTL 和 JSP EL 不适用于 JSON。它们使用 Java bean 和集合。
-
感谢您的解释