0

アプリケーションで検証エラーが発生したときに表示する JSP があります。サーブレットでArrayList<String>は、リクエストにエラーを設定し、次のコードを使用して JSP に出力しようとしています。ArrayListサーバー コンソールに出力しているのでエラーが 1 つあることはわかっていますが、出力されるのは "-" だけです。forEachループを正しく使用していますか?

<c:forEach var="error" items="${errors}">
    <h1>-${error}</h1>
    <br>
</c:forEach>

以下は、サーブレットの doPost のコードの一部です。

        ArrayList<String> errors = dataValidator.getErrors();
    if (errors.isEmpty()) {
        String cost = dataValidator.getCost();
        request.setAttribute("cost", cost);
        RequestDispatcher resultsDispatcher = request.getSession().getServletContext().getRequestDispatcher("/results.jsp");
        try {
            resultsDispatcher.forward(request, response);
        } catch (ServletException se) {
            System.out.println("Servlet Exception: " + se.toString());
        } catch (IOException ioe) {
            System.out.println("IO Exception: " + ioe.toString());
        }
    } else {
        request.setAttribute("errors", errors);
        RequestDispatcher errorDispatcher = request.getSession().getServletContext().getRequestDispatcher("/errors.jsp");
        try {
            errorDispatcher.forward(request, response);
        } catch (ServletException se) {
            System.out.println("Servlet Exception: " + se.toString());
        } catch (IOException ioe) {
            System.out.println("IO Exception: " + ioe.toString());
        }
    }
4

2 に答える 2

0

動作するはずですが、次のようにテストし
ます。 1.<c:out value="${errors}"/>要求にデータが存在することを確認します。
2.errorたとえばerr1、名前を別の名前に変更して表示し、名前の競合がないことを確認します。
3.追加したことを確認します<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

于 2013-08-04T11:48:45.367 に答える
-1

反復ごとにアラートを出すようにしてください。理想的には機能しているはずです。

于 2013-08-03T20:52:16.793 に答える