我想迭代一个List,它是User对象的成员变量。 我不想使用片段,并希望使用某种形式的jsp标签来实现这一目的。
用户类
public class User {
private List<Option> options;
public getOptions()...
}
我在片段中尝试做什么
<%
User user = (User)session.getAttribute("user");
List<Option> options = user.getOptions();
%>
<select id="alertFilter">
<% for (Option o : options) { %>
<option><%=o.getTitle()%></option>
<% } %>
</select>
我已经看到了一些我正在尝试做的简单例子,但他们总是得到简单的反对意见。
标记库方式 - 无法正常工作
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<jsp:useBean id="user" class="ie.openmobile.smsjobs.entity.User" scope="request"></jsp:useBean>
<c:forEach var="options" items="$user.options" > <--incorrect references to alerts/getOptions()
<br>$options.title <--incorrect syntax
</c:forEach>
任何人都可以帮助我吗?
答案 0 :(得分:7)
将其更改为如下
<select id="alertFilter">
<c:forEach var="option" items="${user.options}" >
<option><c:out value="${option.title}"/></option>
</c:forEach>
</select>
解释:$ {user.options}将使用其getOptions()
方法从会话和选项集合中获取用户,并将在每个条目上进行迭代
虽然在迭代${option.title}
下会给option
(这是遍历下的当前选项实例)和option.getTile()