Add values to arraylist use JSTL

前端 未结 3 638
慢半拍i
慢半拍i 2020-12-19 10:32

is it possible to add values to an ArrayList instead of using a HashMap

something like:



        
相关标签:
3条回答
  • 2020-12-19 10:53

    The above code is not working.

    Following are the lines of code that has to be placed in file animals.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>
    
    0 讨论(0)
  • 2020-12-19 10:58

    To do add() to a List or others methods from Map, Set, etc... You have to use a unusable variable.

    <jsp:useBean id="list" class="java.util.ArrayList"/>
    <c:set var="noUse" value="${list.add('YourThing')}"/>
    <c:out value="${list}"/>
    
    0 讨论(0)
  • 2020-12-19 11:05

    JSTL is not designed to do this kind of stuff. This really belongs in the business logic which is (in)directly to be controlled by a servlet class.

    Create a servlet which does like:

    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);
    }
    

    Map this on an url-pattern of /animals.

    Now create a JSP file in /WEB-INF/animals.jsp (place it in WEB-INF to prevent direct access):

    <c:forEach items="${animals}" var="animal">
        ${animal}<br>
    </c:forEach>
    

    No need for jsp:useBean as servlet has already set it.

    Now call the servlet+JSP by http://example.com/context/animals.

    0 讨论(0)
提交回复
热议问题