0

这让我发疯,我已经在这里这里寻求以前的答案,但到目前为止无济于事。

我正在尝试遵循教程,该教程使用 RSS 提要的罗马库来使用 servlet 将提要条目输出到 JSP。我正在使用 Eclipse,即使我已将 JAR 放在项目的构建路径和 WEB-INF/lib 文件夹中,它也无法识别来自罗马的“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 的 servlet 基本上直接来自本教程:

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);

    }


}

servlet 没有显示编译错误。所有导入都可以,包括 from com.sun.syndication.feed.synd.SyndFeed

我不知所措。在此先感谢您的帮助!

4

1 回答 1

3

classandtype属性jsp:useBean(这两个属性意味着不同的东西;确保您使用正确的一个来满足您的需要)期望完全限定的类名。采用:

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