我在 servlet 类中有一个对象实例(具有 ArrayList 的模型),我如何使用 EL 在“jsp”页面中访问它?
这就是我正在尝试的方式
<c:forEach var="module" items="${model}">
<option name="" value="">${module}</option>
</c:forEach>
而不是将数据放入会话中,如果它是按视图数据,请将其作为请求属性传递给 servlet 的方法:
request.setAttribute("model", yourModelObject);
这样它就可以在jsp中访问为:
${model.yourList}
您的迭代将变为:
<c:forEach var="module" items="${model.yourList}">
${module}
</c:forEach>
我假设您想遍历您的 arrayList ?你可以用 c:forEach 标签做到这一点
<c:forEach var="box" items="${**REFERENCE_TO_YOUR_VARIABLE**}"
varStatus="status">
</c:forEach>
如果您使用 RequestDispatcher.forward(request, response) 从 servlet 进行调度,您可能希望将其添加为请求属性而不是会话属性,以防止对象的陈旧实例,并防止对象停留更长时间比需要的。至于你问题的第二部分。如果 ArrayList 是模型对象的变量,则在 el 中引用它的方式如下:
${model.list}
因此,例如,如果对象存储为名为“model”的请求属性,并且对象具有 getList() 方法,则要迭代该列表,请执行以下操作:
<c:forEach items="${model.list}" var="listItem" >