JSP、servletを実行すると
以下のエラーメッセージが
表示されてしまいます。
----------------------------------
javax.servlet.jsp.JspTagException:
<forEach> 内で供給された "items" を反復処理する方法が不明です
----------------------------------
ファイル構成は以下になります。
アプリケーションルート\WEB-INF\classes\Rssdata.java
----------------------------------
public class Rssdata{//データ格納用クラス
public String[] title = new String[20];
public String[] link = new String[20];
public String[] day = new String[20];
}
----------------------------------
アプリケーションルート\WEB-INF\classes\RssOriginal.java
----------------------------------
import java.io.IOException;
import java.net.URL;
import java.util.HashMap;
import java.util.List;
import java.util.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.sun.syndication.feed.synd.SyndEntry;
import com.sun.syndication.feed.synd.SyndFeed;
import com.sun.syndication.fetcher.FeedFetcher;
import com.sun.syndication.fetcher.impl.HttpURLFeedFetcher;
public class RssOriginal extends HttpServlet {
private static final String URL= "http://hoge.net/index20.rdf";
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
FeedFetcher ff = new HttpURLFeedFetcher();
SyndFeed feed=null;
int i = 0;//for文用変数
Rssdata rssdata = new Rssdata();//rssデータ格納用クラス
try {
feed = ff.retrieveFeed(new URL(URL));
} catch (Exception e) {
throw new ServletException(e);
}
Calendar cal = new GregorianCalendar();
for(SyndEntry entry : (List<SyndEntry>)feed.getEntries()){
entry.getPublishedDate();
rssdata.day[i] = cal.get(Calendar.YEAR) + "/" + (cal.get(Calendar.MONTH) + 1) + "/" + cal.get(Calendar.DAY_OF_MONTH);
rssdata.link[i] = entry.getLink();
rssdata.title[i] = entry.getTitle();
/*
System.out.println(rssdata.day[i]);
System.out.println(rssdata.link[i]);
System.out.println(rssdata.title[i]);
System.out.println();
*/
i++; }
request.setAttribute("feed", rssdata);
this.getServletContext().getRequestDispatcher("/chap4/rss/index.jsp").forward(request,response);
}
}
----------------------------------
アプリケーションルート\chap4\rss\index.jsp
----------------------------------
<html>
<head>
<title>RSS情報の展開</title>
</head>
<body>
<h1 style="color:white;background-color:#525D76;font-size:22px;">
RSS情報の展開</h1>
<ul>
<c:forEach var="item" items="${requestScope['feed']}">
<li><a href="${item['link']}">${item['title']}</a></li>
</c:forEach>
</ul>
</body>
</html>
----------------------------------
またこちらのページなど検索で色々調べましたが
http://kamakura.cool.ne.jp/oppama/ssja/taglibs-c …
理屈はなんとなくイメージできるのですが
具体的な解決方法がわかりませんでした。
宜しくお願い致します。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
itemsで指定してる「${requestScope['feed']}」がコレクションではないからではないですか?
forEachって、コレクションの各要素に対して、何らかの処理をするものだと思うので、rssdata自身がコレクションで、その中の各要素がtitleやらlinkやらを保持している形でなければならないと思います。
ご回答ありがとうございます。
>itemsで指定してる「${requestScope['feed']}」が
>コレクションではないからではないですか?
なるほど。forEachはコレクションに対してのものだったのですね。
import java.util.HashMap;
ソースの↑この部分で、すでにご存知かもしれませんが
このサンプル実はもともとHashMapを使用したもので
(HashMapはコレクションだったんですね。
本やサイト見てるのですが、HashMapがなんなのか
根本理解できていません。)
HashMapはキーと値の2つの要素しか保持できないため
クラスにして値を保持させることにしました。
コレクションで値を3種類保持できるものか
クラスの要素を順番に読み込めるjspのアクションタグ
がわかれば解決できると思うのですが
どのようなキーワードで検索すればよいかがわかりません。
参考になる検索キーワード、サイト、本など
ありましたらご教授願いたく思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- HTML・CSS cssの display: flex;で横並びにならずに困ってます 1 2022/12/04 13:18
- その他(プログラミング・Web制作) pythonのグローバル変数 2 2022/11/25 18:02
- Perl RSSにdiv,ul classを付けたいのですがどのようにつけるのかわからないです 2 2022/03/28 01:53
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
eclipseに記述したjavaファイル...
-
シャットダウンフックが呼ばれない
-
Androidプログラムについて
-
生年月日と今日の日付から年齢...
-
干支の計算で。。。
-
半透明の画像
-
「例外 *** は対応する try 文...
-
python OpenPyXLを使って出力結...
-
二次元配列について
-
ActionForm form にnullが入っ...
-
アーティスト名リストを取得す...
-
importするには java.io.*; imp...
-
JAVAサーブレット。 HTML...
-
<forEach> 内で供給された "ite...
-
Javaを使ってデジタル時計を作...
-
IF関数でEmpty値を設定する方法。
-
C言語のポインターに関する警告
-
System.err. printlnとSystem.o...
-
System.out.printlnの意味がよ...
-
1~100までの数字を表示し、か...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
eclipseに記述したjavaファイル...
-
「例外 *** は対応する try 文...
-
ColabでのPytorchのエラー
-
Javaを使ってデジタル時計を作...
-
<forEach> 内で供給された "ite...
-
文字列を数式に
-
importするには java.io.*; imp...
-
python OpenPyXLを使って出力結...
-
Selenium IDEでexportしたコー...
-
シャットダウンフックが呼ばれない
-
Java3Dで横置き円筒体の円筒中...
-
Javaで常駐するソフトを作って...
-
生年月日と今日の日付から年齢...
-
Javaを使用して定時送信をしたい
-
干支の計算で。。。
-
Java での グローバルIP取得
-
GridBagLayoutについての質問
-
ファイル名を動的に生成したい
-
HTMLでのTableタグデータ取得方法
-
importとextendsの用い方の違い...
おすすめ情報