JSF 2 -未检测到@ManagedBean



我有一个具有@ManagedBean注释的ParentBean类。如果我子类化这个类,ChildBean不继承@ManagedBean注释,尽管@ManagedBean注释具有元注释Inherited。

我错过了什么?

<>之前JSF 2.0Mojarra 2.0.6 | JBoss 5.1.0.GAEclipse Indigo - Build id: 20110615-0604之前

EDIT:仍在寻找解决方案…

javax.annotation.ManagedBean不存在@Inheritedjavax.faces.ManagedBean。检查你的导入

而且,我不会依赖那个。我没有在规范中看到它的定义,但是与jsf managed bean的继承通常是一个坏主意。即使你有了它,你也应该有一个抽象基类,它拥有通用的功能,但它本身不是一个托管bean。

另一件事—如果bean上没有注释,稍后阅读代码将会更加困难。读者可能需要一段时间才能意识到它是继承的。

所以把@ManagedBean放在每个bean上,不要过度使用继承。

在阅读了这个问题和Mojarra的一些源代码(见问题)之后,我认为Mojarra实际上可能没有彻底扫描类(对于加载性能)。

所以我的猜测是,对于一个给定的类,Mojarra AnnotationScanner停留在这个类上,它不扫描这个类的层次结构。

这就是为什么我的ChildBean不被识别为ManagedBean的原因。

相关内容

  • 没有找到相关文章

最新更新