我現有的應用程序是用某種手工製作的JSP編寫的。它包含一個來自HttpServlet
的類,它處理所有請求和它自己的HTML模板語言。我正在嘗試使用常用的JSF模板語法來重寫它。現在我正在嘗試重寫一組頁面。所以,我做了以下內容: 我在web.xml中註冊新的servlet項(類 - javax.faces.webapp.FacesServlet
,URL模式 - /jsp/*
) ,並把這個代碼在舊的servlet類:JSF:作爲資源異常在ExternalContext中找不到
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)
請告訴我這裏有什麼問題。
我不確定你對「WebContent」有什麼意思。我正在使用netbeans 7.在項目設置中,我將「網頁文件夾」選項設置爲「網頁目錄」。我的新網頁位於「網頁目錄/ jsp/myNewPage.xhtml」中。我應該從哪裏移動它? – Ilias
'WebContent'是指您的Web項目和WAR文件的根目錄,其中包含WEB-INF目錄和其他Web資源。我相信,根據你配置Netbeans的方式,這將是「網頁目錄」。所以,你的myNewPage.xhtml文件應該被移到「網頁目錄」目錄。 –
內部排序是這樣的.war文件目錄: /WEB-INF/ /jsp/myNewPage.xhtml /資源/ CSS/... /一些老-HTML的目錄/ – Ilias