gpt4 book ai didi

java - JSF : Not Found in ExternalContext as a Resource exception

转载 作者:行者123 更新时间:2023-11-28 22:36:12 26 4
gpt4 key购买 nike

我现有的应用程序是用某种手工制作的 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 Not Found in ExternalContext as a Resource

使用此调用堆栈(最后几行):

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)

请告诉我这里有什么问题。

最佳答案

当您将 FacesServlet 映射到 URL 模式时 /jsp/* , 并访问页面 /jsp/myNewPage.xhtml ,关联的 ResourceResolver 将尝试查找路径为 /myNewPage.xhtml 的资源使用 ExternalContext ,然后是 ServletContext对象。

这意味着 myNewPage.xhtml页面必须出现在 WebContent 中,否则将报告错误。据推论,您必须放置 myNewPage.xhtml WebContent 下的页面或使用 /jsp/<sub-directory-path>/myNewPage.xhtml 引用该页面servlet 中的 URL,其中 sub-directory-path 指的是 WebContent 目录下的目录路径。

关于java - JSF : Not Found in ExternalContext as a Resource exception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6763340/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com