Java 使用JSTL向arraylist添加值
是否可以将值添加到ArrayList而不是使用HashMap 比如: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
<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>
thxJSTL并不是设计用来做这种事情的。这实际上属于由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}"/>