繁体   English   中英

如何在Jsp中添加arraylist

[英]how to add arraylist in Jsp

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
  </head>
  <body>
<%=new Date() %>

<%
ArrayList al = new ArrayList();
al.add("C");
al.add("A");
al.add("E");
al.add("B");
al.add("D");
al.add("F");
%>

    <select>
      <option value="<%=al%>"></option>
    </select>
  </body>
</html>

这是我的代码我想在Jsp中下载Arraylist我不知道如何在html obtion中绑定arraylist或下拉请帮助我我尝试了很多但无法做到这一点。

您必须使用JSTL <forEach>来遍历元素并将其添加到select-option 可能使List成为范围属性。 填充servlet中的List对象,将其设置在request/session范围内并将request转发给此JSP。 请记住,您可以在JSP本身填充List并使用pageScope来引用它,但在我看来这将是糟糕的设计。

<select>
 <c:forEach var="element" items="${al}">
  <option value="${element}">${element}</option>
 </c:forEach>
</select> 

这里, al是可能在requestsession范围内存储List的属性的名称。

在项目中使用JSTL:

  1. 下载 JSTL 1.2 jar。

  2. 在JSP文件中为JSTL核心taglib声明taglib

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

如果你只想使用scriptlets(当然不好):

<%

List<String> al = new ArrayList<String>();
al.add("C");
..........
...........

%>
<select>
  <%  for(String element: al) { %>
   <option value="<%=element%>"><%=element%></option>
  <% } %>
</select>

如果已将List定义为List<String> ,则上述代码将起作用,否则您需要将该元素转换为String

阅读如何避免JSP文件中的Java代码?

EDITED

尝试这个:

<%

ArrayList al = new ArrayList();
al.add("C");
al.add("A");
al.add("E");
al.add("B");
al.add("D");
al.add("F");

%>

<select>
   <%  for(int i = 0; i < al.size(); i++) {
           String option = (String)al.get(i);
   %>
   <option value="<%= option %>"><%= option %></option>
   <% } %>
</select>
</body>
</html>

看一下核心JSTL库中的标签。

将arraylist存储在pageScope.myList中并循环如下:

<select>
<c:forEach items="${pageScope.myList}" var="item" varStatus="status">
<option value='${item}'></option>
</c:forEach >
</select>

这比使用不被视为良好实践的scriptlet更可取

试试这个:在<%! … %>之间声明你的arraylist <%! … %> <%! … %>

<%! ArrayList al = new ArrayList(); %>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM