有没有什么方法可以像@ManagedBean(eager=true)来自javax.faces包?@Named@ApplicationScopedpublicMail(){...}我想在应用程序启动时加载这个类,而不是在webapplication引用这个bean时。附言。JSF2.1Glassfish3.1注入(inject)的Bean 最佳答案 您可以创建一个CDI扩展,该扩展在他的方法之一上具有@ObservesAfterBeanDiscovery参数。您可以在那里实例化bean,从而在容器启动时对其进行初始化。CODI让这些
我已经对此进行了测试,试图将一个服务对象注入(inject)到@ManagedBean,但由于nullpointerexception而失败,因为userService为null。我目前使用的是Tomcat7、JSF2,这是我的一些pom.xml1.63.0.3.RELEASE3.6.0.Final....这是异常跟踪:javax.faces.el.EvaluationException:java.lang.NullPointerExceptionatjavax.faces.component.MethodBindingMethodExpressionAdapter.invoke(Me
我有一个Bean,有一个@ManagedBean注释,定义如下:@ManagedBean@SessionScopedpublicclassBeanimplementsSerializable{/****/privatestaticfinallongserialVersionUID=1L;}Now,Ihaveanotherbeandefinedlikethis:publicclassFooBeanextendsBean{//properties,methodshere...}当我尝试在我的JSF页面中引用FooBean时,出现以下错误:目标无法到达,标识符“fooBean”解析为null
在学习JSF2时,我意识到我不确定支持组件应该是什么。从设计的角度来看,EJB和@ManagedBeans有什么区别?最终还是要用JPA,业务层自然选择EJB。直接从JSF使用EJB是一种好的做法吗(如here所述)?目前,我倾向于将@ManagedBean用于不需要访问业务层(例如View助手)或处理请求/session数据的组件。用于其他目的,例如在网格中列出一些东西,我会直接访问EJB。这是一个好的设计吗?为了干净的层分离,我是否应该对所有支持beans使用@ManagedBeans,即使在某些情况下它们只委托(delegate)给EJB? 最佳答案
据我所知,要使用@Annotations(或C#中的[Attributes]),您必须引用类元数据,以便您可以询问该类是否被注释(属性化)。我的问题是JSF实现如何找到所有用@ManagedBean注释的类?它是否扫描类路径中的所有类?或者是否有一种方法可以实际“查询”JVM以获取带注释的类?我问这个是因为当我将带注释的支持bean直接放在我的web项目中时,没有问题。但是我在JAR文件中定义的beans(可跨项目重用)没有注册。有什么我必须告诉MyFaces以指示它查看哪些JAR文件吗?此外,使用注释引入了许多不错的编程模式。我想知道我是否能以某种方式找到所有带注释的类...