代码之家  ›  专栏  ›  技术社区  ›  charilaos13

从Servlet填充文本区域中的列表<字符串>

  •  -1
  • charilaos13  · 技术社区  · 13 年前

    你好,我有这个 List<String> 在Servlet中,我需要将其填充到一个文本区域,如

    Servlet: List<String> some_words = null; messages.put("property_name",some_words);

    JSP:

    <textarea name="" id="">${messages.property_name}</textarea>
    

    有人能告诉我怎么做吗?

    1 回复  |  直到 13 年前
        1
  •  1
  •   MikO    13 年前

    o您可以使用 JSTL foreach 这样地:

    <textarea name="" id="">
      <c:forEach var="word" items="${some_words}">
        ${word},
      </c:forEach>
    </textarea>
    

    这将以逗号分隔打印。。。

    别忘了,您必须在JSP中导入核心JSTL库,方法是:

    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    

    编辑:为了将列表从servlet传递到JSP,您只需要将列表存储在会话中,并使用以下命令将请求转发到JSP:

    HttpSession session = request.getSession(true);
    session.setAttribute("some_words", some_words);
    request.getRequestDispatcher("anotherPage.jsp").forward(request, response);
    

    请注意,some_words是您的列表对象,“some_wwords”是您给它的名称,也是您将在JSP中使用的名称。

    编辑2:为了避免在最后一项之后打印逗号,您可以使用JSTL 如果 变量状态 ,因此您可以改进最后一个代码,如下所示:

    <textarea name="" id="" varStatus="status">
      <c:forEach var="word" items="${some_words}">
        ${word}<c:if test="${!status.last}">, </c:if>
      </c:forEach>
    </textarea>
    

    这样,在每个循环中,您都会检查当前项是否是最后一个。只有当它不是最后一个时,你才会打印一个逗号。