0

これは私を怒らせており、私はすでにここここで以前の答えを探していましたが、これまでのところ役に立ちませんでした.

RSSフィード用のRomeライブラリを使用して、サーブレットを使用してフィードエントリをJSPに出力するこのチュートリアルに従おうとしています。私は Eclipse を使用しています。JAR をプロジェクトのビルド パスと WEB-INF/lib フォルダーに配置したにもかかわらず、Rome の「SyndFeed」クラスを認識しません。次のコードでは、まだ「未定義の型」と表示されています。

<jsp:useBean id="syndFeed" scope="request" type="SyndFeed" />

この上に、私は持っています:

<%@ page import="com.sun.syndication.feed.synd.SyndFeed" %> 
<%@ page import="com.sun.syndication.feed.synd.SyndEntry" %> 
<%@ page import="java.util.Iterator" %> 

Rome を使用する私のサーブレットは、基本的にチュートリアルからそのままです。

public class RssServlet1 extends HttpServlet {
    private static final long serialVersionUID = 1L;

    private RequestDispatcher indexJSP;

    @Override
    public void init(ServletConfig config) throws ServletException {
        ServletContext context = config.getServletContext();
        indexJSP = context.getRequestDispatcher("/WebContent/index.jsp");
    }


    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException {

        URL feedURL = new URL("http://rss.cnn.com/rss/cnn_tech.rss");
        SyndFeedInput syndInput = new SyndFeedInput();
        SyndFeed syndFeed = null;
        XmlReader xmlReader = new XmlReader( feedURL );

        try {
            syndFeed = syndInput.build( xmlReader );
        } catch (IllegalArgumentException e) {
            e.printStackTrace();
        } catch (FeedException e) {
            e.printStackTrace();
        }

        request.setAttribute("syndFeed", syndFeed);
        indexJSP.forward(request, response);

    }


}

サーブレットにコンパイル エラーは表示されません。from を含むすべてのインポートは OK ですcom.sun.syndication.feed.synd.SyndFeed

私は途方に暮れています。よろしくお願いします。

4

1 に答える 1

3

classとのtype属性jsp:useBean(これら 2 つの属性は異なる意味を持ちます。必要に応じて正しいものを使用していることを確認してください) は、完全修飾クラス名を想定しています。使用する:

<jsp:useBean id="syndFeed" scope="request" type="com.sun.syndication.feed.synd.SyndFeed" />
于 2012-12-07T03:39:49.947 に答える