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

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

ただいまの
回答率

88.22%

jspで<c:foreach>の使い方がわからない

受付中

回答 0

投稿 編集

flag 質問者が4時間前に「まだ回答を求めています」と言っています。

  • 評価
  • クリップ 0
  • VIEW 118

ymr.2525

score 4

実現したいこと

テーブル一覧を表示したい。jspで繰り返し構文<c:foreach>を使って表示したい。
指定の名前で抽出し、そのレコードをテーブルとして表示したい。

補足

jspで<c:foreach>を使ってテーブルが表示されません。
Javaは問題ございませんが一応ソースコード貼っておきます。

Dto.java

public class Dto{
  private String name;
  private String nameNo
  private String tel;
  private String comment;
  public String getName(){
     return this.name;
  }
  public void setName(String name){
     this.name = name;
  }
   //((以下省略))

Dao.java

private static final String SELECT_ALL = "SELECT name, namme_no, tel FROM fxxkman WHERE nameNo=?";

public List<Sample> selectAll(String nameNo) throws DaoException{
  List<Sample> sampleList = new ArrayList<Sample>();
  try{
        DB接続
        //省略
        PreparedStatement st = conn.prepareStatement(SELECTALL)
        while(resultSet.next()) {
           Sample sam = new Sample();
           sam.setName(resultSet.getString("name");
           //省略
           sam.setComment(resultSet.getString("comment");
           sam.add(sampleList);
        } catch (//省略){
           throw //省略
        } finally {
           closeConnection();
        }
  return sampleList;
  }
}        

Servlet.java

セッション取得
(省略)
String nmNo = (String) session.getAttribute("nameNo");

try {
        List<Sample> sampleList = new Dao().selectAll(nmNo);
        SampleFlow flow = new SampleFlow();
        //省略
        for(Sample sam : sampleList){
          sampleList.setName(sam.getName());
          //省略
          sampleList.setComment(sam.getComment());
        }
        //省略
        session.setAttribute("SampleList", sammpleList);
     } catch(DaoException err) {
        err.printStackTrace();
     }
request.getRequestDispatcher("~~~sample-table.jsp").forward(req, res);

SampleFlow.java

public class Dto{
  private String name;
  private String nameNo
  private String tel;
  private String comment;
  public String getName(){
     return this.name;
  }
  public void setName(String name){
     this.name = name;
  }
   //((以下省略))

sample-list.jsp

ここでテーブルを表示したいのですがわかりません。

//省略

<body>
  <h1>サンプルテーブル</h1>
  <table>
    <tr>
       <th>名前</th>
       <th>番号</th>
       <th>連絡先</th>
       <th>メッセージ</th>
    </tr>
    <tr>
       <!-- sessionからSampleListの変数を取得 -->
       <c:forEach var="list" items="${SampleList}">
          <td><c:out value="${list.name}" /></td>
          <td><c:out value="${list.nameNo}" /></td>
          <td><c:out value="${list.tel}" /></td>
          <td><c:out value="${list.comment}" /></td>
       </c:forEach>
    </tr>
  </table>
</body>

このような表示がしたいです。

名前 番号 連絡先 メッセージ
太郎 1192 0221212 ありがとう
太郎 1192 0221212 ごめんね
太郎 1192 0221212 さよなら
太郎 1192 0221212 こんにちは
太郎 1192 0221212 好きだよ
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正の依頼

  • K_3578

    2021/02/27 14:24 編集

    @質問者様
    対応ありがとうございます。

    基本的にですが、質問文のコードは極力省略されないで書いて頂ける方が有難いです。
    省略している部分が原因だった場合、回答者は回答のしようがないので。

    キャンセル

  • ymr.2525

    2021/02/27 16:13

    K_3578さん
    こちらこそご指摘ありがとうございます。
    こちらの編集すべき内容は確認後、修正していきたいと思います。

    別件で質問を投稿いたしましたので、そちらもご覧いただけますと幸いです。

    キャンセル

  • K_3578

    2021/02/27 16:18

    @質問者様
    正直未解決の質問がある状態で新規の質問をするのは控えられた方が良いと思いますが・・・。
    問題は一つずつ片付けていくべきです。

    キャンセル

まだ回答がついていません

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

  • ただいまの回答率 88.22%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る