我有一些使用@WebServlet
注释的bean:
@WebServlet("tools/httpProjectLoader.xhtml")
public class HttpProjectLoader extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
...
}
}
我想使用该URL对电子邮件中的链接做出反应,例如:
http://myhost/webapp/tools/httpProjectLoader.xhtml?pn=1000000654
web.xml对FacesServlet
使用以下设置:
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
当我尝试从FacesContext.getCurrentInstance()
内访问#doGet(...)
时,返回的值始终为null
。 为什么?我该如何处理?我想使用一些UI(CDI)bean来初始化应用程序并转发到结果页面。每当某些代码使用FacesContext.getCurrentInstance().addMessage(...)
时,它就会以NullPointerException
失败。