3

JSP のスクリプトレットで定義されている ArrayList があります。body セクションでは、JSTL forEach ループを使用してアイテムを表示したいと考えています。

このようなチュートリアルを行った後、次のコードを作成しました。

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

<%
ArrayList<String> fruits = new ArrayList<String>();
fruits.add("Orange");
fruits.add("Apple");
%>

<html>
<head>
    <title>JSTL</title>
</head>
<body>
    <c:forEach var="fruit" items="${fruits}">
        <c:out value="${fruit}" />
    </c:forEach>
</body>
</html>

しかし、私は空白のページを取得しています。上記のコードのどこが間違っていますか?

私が見つけたすべてのチュートリアルは、サーブレットで Bean の ArrayList を定義し、request. forEach ループでは、 and を使用c:out${bean.prop}て出力します。私はそれらをそのように試していません。もっと簡単なことをしたかったのですが、このコードを機能させることができないようです。

4

3 に答える 3

3

add pageContext.setAttribute("果物", 果物);

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page import="java.util.ArrayList" %>

<%
ArrayList<String> fruits = new ArrayList<String>();
fruits.add("Orange");
fruits.add("Apple");
pageContext.setAttribute("fruits", fruits);
%>
<html>
<head>
<title>JSTL</title>
</head>
<body>
    <c:forEach var="fruit" items="${fruits}">
     <c:out value="${fruit}" />
    </c:forEach>
</body>
</html>
于 2013-02-07T17:06:08.460 に答える
2

配列をリクエストに入れる必要があります。これは、最後の fruit.add() 呼び出しの直後に行ってください。

<%= request.setAttribute( "fruits", fruits ); %>
于 2013-02-07T16:53:36.710 に答える
0

easiest one would be to define a variable using and using that.

<c:set var="fruits">
   <%= fruits %>
<c:set>

<c:forEach var="fruit" items="${fruits}">
    <c:out value="${fruit}" />
</c:forEach

The <%= fruits %> is the arraylist you created in scriptlet.

于 2013-09-15T11:53:35.330 に答える