我使用request.setAttribute()方法发送两个属性,这两个属性都是列表,一个是用户名,另一个是相应的全名。我使用EL语法接收它们。 Servlet代码
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>
我需要检索一个var&#39;用户名&#39;这对应于单个列表&#39;变量。所以我认为我需要每次迭代并得到两个变量&#39; list&#39;和&#39;用户名&#39;。我用c:设置coz我没有如何完成我所需要的。
请帮忙。对不起任何困惑。
答案 0 :(得分:0)
而不是使用两个List<String>
只创建一个List<User>
,其中User
是一个包含firstName
,lastName
和userName
的简单POJO类。
例如:
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>