您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

可以将@ManagedBean作为@ManagedProperty注入@WebServlet吗?

可以将@ManagedBean作为@ManagedProperty注入@WebServlet吗?

@ManagedProperty由于@ManagedBean只能在类中使用,因此无法在servlet中使用。此外,也不可能注入范围小于父对象本身的对象,因为这只会导致并发问题。注入程序将为此抛出运行时异常。servlet本质上是应用程序范围内的,并在所有用户之间共享,并且您的UserIdentitybean似乎是会话范围的。

由于JSF在Servlet API之上运行并将会话范围的bean存储在会话中,因此您可以在servlet中将其作为会话属性获取

UserIdentity identity = (UserIdentity) request.getSession().getAttribute("userIdentity");

请注意,FacesContext除了之外FacesServlet,通常在servlet中也无法使用,因此FacesContext按注释中的建议在servlet中使用没有任何意义,只会返回null

Jave 2022/1/1 18:28:24 有407人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶