这让我发疯,我已经寻找过以前的答案 here和 here ,目前还没有结果。
我正在尝试关注this教程,它使用 RSS 提要的 Rome 库通过 servlet 将提要条目输出到 JSP。我正在使用 Eclipse,它无法识别来自 Rome 的“SyndFeed”类,即使我已将 JAR 放置在项目的构建路径和 WEB-INF/lib 文件夹中。对于以下代码,仍然显示“未定义类型”:
<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" %>
我的 servlet 使用 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);
}
}
servlet 没有显示任何编译错误。所有导入均正常,包括来自 com.sun.syndicate.feed.synd.SyndFeed
的导入。
我迷茫了。在此先感谢您的帮助!
最佳答案
jsp:useBean
的 class
和 type
属性(这两个属性含义不同;请确保您使用正确的属性)您的需求)期望完全限定的类名。使用:
<jsp:useBean id="syndFeed" scope="request" type="com.sun.syndication.feed.synd.SyndFeed" />
关于java - 为什么我的 IDE 无法识别我认为已在 JSP 中正确导入的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13756410/