2011-09-02 39 views
1

我在WEB-INF下創建了一個test.jspx文件,我試圖通過請求調度程序通過servlet訪問它,但是我得到了java.lang.RuntimeException: Cannot find FacesContext防止從瀏覽器訪問jspx頁面

web.xml映射如下:

<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>/faces/*</url-pattern> 
    </servlet-mapping> 

它正常工作,如果我使用.jsp

我的要求dispacther代碼如下:

RequestDispatcher dispatcher=getServletContext().getRequestDispatcher("/WEB-INF/test.jspx?sessid="+id); 
dispatcher.forward(request, response); 

回答

1

請求URL(你在瀏覽器地址欄中看到)或前URL(你在RequestDispatcher#forward()使用)必須匹配的URL模式FacesServlet爲了讓它運行並處理JSF頁面中的所有JSF組件。

您已將FacesServlet映射爲/faces/*的網址格式,並且您正嘗試從某個自制servlet調用它(爲什麼?),因此轉發網址必須與該網址格式匹配。將頁面放置在/WEB-INF之外並轉發至/faces/test.jspx

相關問題