【问题标题】:Using C:forEach to iterate over two variables使用 C:forEach 迭代两个变量
【发布时间】:2015-03-12 17:02:19
【问题描述】:

我正在使用 request.setAttribute() 方法发送两个属性,它们都是 list ,一个带有用户名,一个带有相应的全名。我使用 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>

我需要检索与单个“列表”变量相对应的单个 var“用户名”。所以我认为我需要每次迭代并获得两个变量“列表”和“用户名”。我使用了 c:set 因为我没有完成我需要的操作。

请帮忙。很抱歉有任何混淆。

【问题讨论】:

    标签: jsp servlets


    【解决方案1】:

    不要使用两个List&lt;String&gt;,而是只创建一个List&lt;User&gt;,其中User 是一个简单的POJO 类,具有firstNamelastNameuserName

    例如:

    POJO:

    public class User {
         private String firstName, lastName, userName;
         // getter & setter
    }
    

    小服务程序:

    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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-17
      • 2016-02-09
      • 2020-08-08
      • 1970-01-01
      • 1970-01-01
      • 2019-09-02
      • 2020-05-26
      相关资源
      最近更新 更多