【发布时间】:2011-05-27 01:02:49
【问题描述】:
在我的 Java EE 6-webapp(在最新的 GlassFish 3.1 上运行)中,我使用 JSF2-ManagedBeans 和 @ManagedProperty 将它们注入到其他 ManagedBeans 中。现在我想知道我是否也可以使用@ManagedProperty 将@ManagedBean 注入@WebServlet。一些代码:
@WebServlet(name = "vdd")
public class VddServlet extends HttpServlet
{
@ManagedProperty(value = "#{userIdentity}")
private UserIdentity identity;
}
ManagedBean 看起来像这样:
@ManagedBean
public class UserIdentity
{
...
}
它是这样工作的吗?如果没有,我还有什么其他方法可以将 ManagedBean 注入到 WebServlet 中(没有 CDI,目前这不是一个选项 - 因为 GF 3.1 B32/33 与 OSGi-Java EE 应用程序相结合存在一些问题,但我们时间不够)?
【问题讨论】:
-
@Vladimir 我刚刚使用 Netbeans 示例应用程序(PetCatalog)进行了测试,创建了一个 Servlet,用 @WebServlet 对其进行了注释,向其中注入了一个 @ManagedBean。在浏览器中打开 servlet 时,不会注入该值,因此它似乎无法以这种方式工作。在这方面需要帮助...
-
为什么要在 servlet 中注入 bean?如果您只想访问它,可以从
FacesContext访问它 -
好吧,这是可能的。但是通过注射来做会好得多。没有 CDI 就没有办法做到这一点?
标签: java servlets jakarta-ee jsf-2