1

我在 WEB-INF 下创建了一个 test.jspx 文件,我试图通过请求调度程序通过 servlet 访问它,但我得到java.lang.RuntimeException: Cannot find FacesContext.

web.xml映射如下:

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

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

我的请求调度程序代码如下:

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

1 回答 1

1

请求 URL(您在浏览器地址栏中看到)或转发 URL(您在 中使用RequestDispatcher#forward()必须与 的 URL 模式匹配,FacesServlet以使其运行并处理 JSF 页面中的所有 JSF 组件。

您已经映射了FacesServlet一个 URL 模式,/faces/*并且您正试图从一些自制的 servlet 调用它(为什么?),因此转发 URL 必须与该 URL 模式匹配。将页面放在外面/WEB-INF并转发到/faces/test.jspx

于 2011-09-02T12:15:10.820 回答