JSF 2 – 未检测到@ManagedBean
我有一个ParentBean
类,它有@ManagedBean注释。 如果我将ChildBean
子类化,则ChildBean
不会inheritance@ManagedBean批注,尽管@ManagedBean批注具有元标注Inherited 。
我错过了什么?
JSF 2.0 Mojarra 2.0.6 | JBoss 5.1.0.GA Eclipse Indigo - Build id:20110615-0604
编辑:仍在寻找解决方案……
javax.annotation.ManagedBean
没有@Inherited
。 javax.faces.ManagedBean
有。 检查你的import。
此外,我不会依赖于此。 我没有看到它在规范中定义,但通常使用jsf托管beaninheritance是一个坏主意。 即使你拥有它,你也应该有一个抽象的基类,它具有通用的function,但它本身不是托管bean。
另一件事 – 如果你没有bean上的注释,稍后阅读代码会更难。 可能需要一段时间,直到读者意识到它是inheritance的。
因此,在每个bean上放置@ManagedBean
,不要过度使用inheritance。
在阅读了这个问题并从Mojarra(请参阅问题 )中略读一下源代码之后,我认为Mojarra实际上可能没有彻底扫描类(用于加载性能 )。
所以我的猜测是,对于一个给定的类,Mojarra AnnotationScanner
停留在这个类上,它不会扫描同一个类的层次结构。
这就是为什么我的ChildBean
不被识别为ManagedBean
。
- 获取href值(WebDriver)
- 使用Travis,Maven和github的Sonarcloud失败
- 使用AXIS2将用户/密码添加到SOAPHeader以进行WebService客户端调用
- 位置0处的意外字符(i)。 – 使用Java解析JSON
- 通过命令行运行JAR时出错java.lang.ClassNotFoundException:com.mysql.jdbc.Driver
- Java 8中的新java.security.AccessControlException
- Java中的Apache HttpClient,instream.toString = org.apache.http.conn.EofSensorInputStream
- 获取Java中时区的夏令时转换日期
- 使用Java从文本文件中逐列提取数据