我正在 eclipse helios 中尝试 JSF2 CDI(焊接)bean,而不是 ManagedBeans
,但无法在我的 Named
beans 的表达式语言中执行自动完成( #{myNamedBean.
Ctrl+空格}
东西)
但是 OTOH 与 ManagedBeans 一起,内容辅助效果很好.. Eclipse Helios 是否支持 CDI bean 的内容辅助?
有人有这方面的经验吗?
最佳答案
安装 JBoss tools 。然后添加
<nature>org.jboss.tools.jsf.jsfnature</nature>
到natures
.project
部分文件,我的 Eclipse J2EE Helios 版本中的支持得到了改进。 (此步骤可能等于项目设置中的Configure->Add JSF Capabilities
。)上下文完成然后适用于cc.attrs.<ctrl-space>
。构建组件组合时,但遗憾的是仍然没有任何@ManagedBean
s。从 ManagedBeans 切换到 CDI:我更改了所有
@ManagedBean
发送至@javax.inject.Named
以及@javax.enterprise.context.*Scoped
的范围等等。我还在项目设置中启用了 CDI 支持。然后我在.xhtml
中获得了bean的上下文完成!
第一个限制:仅当 EL 是属性值的一部分时才有效。如果你只使用#{EL}
,它不起作用。 .xhtml
上的其他地方页。
第二个限制:如果您通过常量定义 bean 的名称,则上下文竞争无法识别它:不起作用:@Named(value = MyBean.BEANNAME)
。您必须将名称设置为字符串,例如:@Named(value = "myBean")
第三个限制:如果您使用参数化方法调用(例如使用 Tomcat7 或 Glassfish),则自动完成功能不支持此操作。自动完成仅显示 bean 的 get/set/is 属性。
注意:它在 Netbeans 7 中开箱即用。
关于eclipse - JSF2 + CDI(焊接)bean + Eclipse Helios 的内容辅助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4122189/