JSF将应用程序范围的托管bean存储在
ServletContext
. 在servlets中,
服务上下文
只是被继承的
getServletContext()
方法。您不需要手动创建一个整体
FacesContext
在它周围。为此目的,这只是一项不必要的昂贵任务。
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Bean bean = (Bean) getServletContext().getAttribute("bean");
// ...
}
如果它回来
null
然后它仅仅意味着JSF还没有开始为您自动创建bean(也就是说servlet被称为太早了)。然后您需要自己创建和存储它。如果托管bean名称(属性键)相同,JSF将使用它。
if (bean == null) {
bean = new Bean();
getServletContext().setAttribute("bean", bean);
}
也就是说,这个servlet的目的是什么?您是否试图以错误的方式实现某些功能需求?