Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用JSTL向arraylist添加值_Java_Jstl - Fatal编程技术网

Java 使用JSTL向arraylist添加值

Java 使用JSTL向arraylist添加值,java,jstl,Java,Jstl,是否可以将值添加到ArrayList而不是使用HashMap 比如: <jsp:useBean id="animalList" class="java.util.ArrayList" /> <c:set target="${animalList}" value="Sylvester"/> <c:set target="${animalList}" value="Goofy"/> <c:set target="${animalList}" value

是否可以将值添加到ArrayList而不是使用HashMap

比如:

<jsp:useBean id="animalList" class="java.util.ArrayList" />

<c:set target="${animalList}" value="Sylvester"/>

<c:set target="${animalList}" value="Goofy"/>

<c:set target="${animalList}" value="Mickey"/>

<c:forEach items="${animalList}" var="animal">

${animal}<br>

</c:forEach>    

thx

JSTL并不是设计用来做这种事情的。这实际上属于由servlet类直接控制的业务逻辑

创建一个servlet,如下所示:

protected void doGet(HttpServletRequest request, HttpServletResponse response) {
    List<String> animals = new ArrayList<String>();
    animals.add("Sylvester");
    animals.add("Goofy");
    animals.add("Mickey");
    request.setAttribute("animals", animals);
    request.getRequestDispatcher("/WEB-INF/animals.jsp").forward(request, response);
}
不需要
jsp:useBean
,因为servlet已经设置了它


现在通过
http://example.com/context/animals

上述代码不起作用

以下是必须放在文件
anives.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<c:forEach var="animal" items="${animals}">
   <c:set var="animalName" value="${animal}"/>
   <c:out value="${animalName}"/>
</c:forEach>

向列表添加()或从映射、集合等执行其他方法。。。您必须使用一个不可用的变量

<jsp:useBean id="list" class="java.util.ArrayList"/>
<c:set var="noUse" value="${list.add('YourThing')}"/>
<c:out value="${list}"/>


OP已经在使用JSTL,在我的回答中没有必要提及它。显然,必须声明taglib才能解析标记。此外,您的标记库URI已经过时了。在这两者之间必须有一个
/jsp
。是否可以在不限于页面、会话等的ArrayList()上运行c:foreach?例如,如果arraylist是一个具有getter/setter的类中的属性。@robert:当然可以。只需将该类放在作用域中,并使用
items=“${bean.list}”
其中
${bean}
指向具有返回列表的
getList()
方法的类。谢谢,您的速度非常快!
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<c:forEach var="animal" items="${animals}">
   <c:set var="animalName" value="${animal}"/>
   <c:out value="${animalName}"/>
</c:forEach>
<jsp:useBean id="list" class="java.util.ArrayList"/>
<c:set var="noUse" value="${list.add('YourThing')}"/>
<c:out value="${list}"/>