使用 C:forEach 遍历两个变量
Using C:forEach to iterate over two variables
我正在使用 request.setAttribute() 方法发送两个属性,它们都是列表,一个带有用户名,一个带有相应的全名。我使用 EL 语法接收它们。
小服务代码
stmt = currentCon.createStatement();
rs = stmt.executeQuery(searchUserQuery);
List<String> fullNameList = new ArrayList<String>();
List<String> userNameList = new ArrayList<String>();
while (rs.next()) {
fullNameList.add(rs.getString("firstname") + " " + rs.getString("lastname"));
userNameList.add(rs.getString("username"));
}
request.setAttribute("fullNameList", fullNameList);
request.setAttribute("userNameList", userNameList);
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
//response.getWriter().write(fullNameList);
RequestDispatcher requestDispatcher = request.getRequestDispatcher("searchResults");
requestDispatcher.forward(request, response);
这是我的 jsp
代码的一部分
<c:forEach var="list" items="${fullNameList}">
<c:set var="username" value="${userNameList}" />
<li class="list-group-item title"><a href="${pageContext.request.contextPath}/UserProfile?username=${username}"><strong>${list}</strong></a></li>
</c:forEach>
我需要检索与单个 'list' 变量相对应的单个变量 'username'。所以我认为我需要每次迭代并获得两个变量 'list' 和 'username'。我使用 c:set 因为我不知道如何完成我需要的。
请帮忙。抱歉造成任何混乱。
与其使用两个 List<String>
,不如只创建一个 List<User>
,其中 User
是一个简单的 POJO class,具有 firstName
、lastName
和userName
.
例如:
POJO:
public class User {
private String firstName, lastName, userName;
// getter & setter
}
Servlet:
List<User> users = new ArrayList<User>();
// populate users
request.setAttribute("users", users);
JSP:
<c:forEach var="user" items=${users}>
<li><a href="${pageContext.request.contextPath}/UserProfile?username=${user.userName}"><strong>${user.firstName} ${user.lastName}</strong></a></li>
</c:forEach>
我正在使用 request.setAttribute() 方法发送两个属性,它们都是列表,一个带有用户名,一个带有相应的全名。我使用 EL 语法接收它们。 小服务代码
stmt = currentCon.createStatement();
rs = stmt.executeQuery(searchUserQuery);
List<String> fullNameList = new ArrayList<String>();
List<String> userNameList = new ArrayList<String>();
while (rs.next()) {
fullNameList.add(rs.getString("firstname") + " " + rs.getString("lastname"));
userNameList.add(rs.getString("username"));
}
request.setAttribute("fullNameList", fullNameList);
request.setAttribute("userNameList", userNameList);
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
//response.getWriter().write(fullNameList);
RequestDispatcher requestDispatcher = request.getRequestDispatcher("searchResults");
requestDispatcher.forward(request, response);
这是我的 jsp
代码的一部分<c:forEach var="list" items="${fullNameList}">
<c:set var="username" value="${userNameList}" />
<li class="list-group-item title"><a href="${pageContext.request.contextPath}/UserProfile?username=${username}"><strong>${list}</strong></a></li>
</c:forEach>
我需要检索与单个 'list' 变量相对应的单个变量 'username'。所以我认为我需要每次迭代并获得两个变量 'list' 和 'username'。我使用 c:set 因为我不知道如何完成我需要的。
请帮忙。抱歉造成任何混乱。
与其使用两个 List<String>
,不如只创建一个 List<User>
,其中 User
是一个简单的 POJO class,具有 firstName
、lastName
和userName
.
例如:
POJO:
public class User {
private String firstName, lastName, userName;
// getter & setter
}
Servlet:
List<User> users = new ArrayList<User>();
// populate users
request.setAttribute("users", users);
JSP:
<c:forEach var="user" items=${users}>
<li><a href="${pageContext.request.contextPath}/UserProfile?username=${user.userName}"><strong>${user.firstName} ${user.lastName}</strong></a></li>
</c:forEach>