質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
foreach

foreachは、List・Collection・Arrayといったデータ構造の各要素に対して繰り返し処理を実行するために扱われる、制御構造の構文です。

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Q&A

解決済

1回答

2616閲覧

EL式のforeachが動かない

omatsu45

総合スコア18

foreach

foreachは、List・Collection・Arrayといったデータ構造の各要素に対して繰り返し処理を実行するために扱われる、制御構造の構文です。

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

0グッド

0クリップ

投稿2018/12/17 23:57

編集2018/12/19 09:54

困っていること

webサービスの開発をやっているんですが
java側でsessionにセットしたリストオブジェクト(★)を、jspのforeachで展開して表示したいのですが動きません。
何か文法の間違え等ありましたらご指摘いただけないでしょうか。

試したこと

・HTMLの表示そのものはうまくいきます。
・タグライブラリは以下を使用しています。
WebContent/WEB-INF/lib
jstl-api-1.2.jar
jstl-impl-1.2.jar

ソース

■JAVA側
List<MonthlyExpenseDto> meList = new ArrayList<MonthlyExpenseDto>();
ExpenseDao dao = new ExpenseDao();

meList = dao.findAll();

         // ★リクエストにリストオブジェクトをセット
request.setAttribute("meList", meList);

RequestDispatcher dispatcher = request.getRequestDispatcher("/hello.html"); dispatcher.forward(request, response);

■HTML側
<c:forEach var="me" items="${meList}">
<c:out value="${me.expense_date}">
<c:out value="${me.catg_name}">
<c:out value="${me.name}">
<c:out value="${me.price}">
<c:out value="${me.item_num}">
<c:out value="${me.total_price}">
</c:forEach>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/12/18 00:09

登録してないオブジェクト(アトリビュート)にアクセスできないのは当たり前
omatsu45

2018/12/18 14:10

asahina1979 申し訳ありません、指摘の意味が理解できませんでした。。 もう少し自分で調べてみようと思うので、調べてみるとよいキーワードなどありましたらご教授願います。
guest

回答1

0

ベストアンサー

foreachのitemsにmeListを指定していますが、setAttributeしているキー名は"me"になっています。

投稿2018/12/18 14:42

aikon_marimo

総合スコア1083

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

omatsu45

2018/12/19 09:55 編集

aikon_marimo さん ご回答ありがとうございます。 setAttributeしているキー名、質問内容も併せて修正しました。 ですが、まだ表示が上手くいきません。 何かほかにおかしい点あればご指摘願います。 【hello.html】 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <h1>YYYY年MM月</h1> <h2>出費明細</h2> <c:forEach var="me" items="${meList}"> <p>aaaa<c:out value="${me.expense_date}">bbbb</p>       ※ここからは、meListからvalue値取得の連続のため省略 </c:forEach> </body> </html>
退会済みユーザー

退会済みユーザー

2018/12/18 23:33 編集

ちなみに、デイスパッチ →回答者
aikon_marimo

2018/12/18 23:59

ほんとですね。 javaでgetrequestdispatcherに指定してるのがHTMLになってますけどあってます?→質問者
omatsu45

2018/12/19 00:05

はい、合ってます。 VIEW側は、現在htmlファイルを使用しています。
omatsu45

2018/12/19 09:53

ごめんなさい、こちらもhello.htmlの誤りです。。失礼いたしました。
aikon_marimo

2018/12/19 12:22

jspにしてみてください。
omatsu45

2018/12/20 14:24

ありがとうございます、拡張子をJSPに変えたところ解決しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問