【发布时间】:2011-10-09 10:50:42
【问题描述】:
我现有的应用程序是用某种手工 JSP 编写的。它包含一个派生自HttpServlet 的类,处理所有请求和它自己的HTML 模板语言。我正在尝试使用常见的 JSF 模板语法重写它。现在我正在尝试重写一组页面。所以我做了以下事情:
我在 web.xml 中注册了新的 servlet 条目(类 - javax.faces.webapp.FacesServlet,url 模式 - /jsp/*)
并将这段代码放在旧的 servlet 类中:
ExistingServlet::doGet(request, response)
{
// some old code
if(page we are going to is my new page)
{
RequestDispatcher dispatcher = request.getRequestDispatcher("/jsp/myNewPage.xhtml");
dispatcher.forward(request, response);
return;
}
}
但如果我要去这个页面,我会遇到以下异常:
/myNewPage.xhtml 在 ExternalContext 中找不到作为资源
使用此调用堆栈(最后几行):
at com.sun.faces.facelets.impl.DefaultFaceletFactory.resolveURL(DefaultFaceletFactory.java:224)
at com.sun.faces.facelets.impl.DefaultFaceletFactory.resolveURL(DefaultFaceletFactory.java:265)
at com.sun.faces.facelets.impl.DefaultFaceletFactory.getMetadataFacelet(DefaultFaceletFactory.java:201)
at com.sun.faces.application.view.ViewMetadataImpl.createMetadataView(ViewMetadataImpl.java:114)
at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:227)
请告诉我这里出了什么问题。
【问题讨论】: