我在 eclipse helios 中尝试 JSF2 CDI (weld) beans 而不是ManagedBeans
,但无法在表达式语言中为我的Named
beans ( #{myNamedBean.
Ctrl+ Space}
thingy)执行自动完成
但是 OTOH 使用 ManagedBeans,内容辅助运行良好.. Eclipse Helios 是否支持 CDI bean 的内容辅助?
有人有这方面的经验吗?
安装JBoss 工具。然后通过添加<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
s 更改为@javax.inject.Named
,并将范围更改为@javax.enterprise.context.*Scoped
etc。我还在项目设置中启用了 CDI Support。然后我在.xhtml
!
第一个限制:仅当 EL 是属性值的一部分时才有效。如果您只是在页面#{EL}
上的其他地方使用它是行不通的。.xhtml
第二个限制:如果您通过常量定义 bean 的名称,则无法识别上下文竞争:不起作用:@Named(value = MyBean.BEANNAME)
。您必须将名称设置为字符串,例如:@Named(value = "myBean")
第三个限制:如果您使用参数化方法调用(例如,使用 Tomcat7 或 Glassfish),自动完成不支持。自动完成仅显示 bean 的 get/set/is 属性。
注意:它在 Netbeans 7 中开箱即用。
如果有任何支持,它将来自JBoss Tools。
在安装 JBossTools 之前,请注意,对于 EL 自动完成支持和托管 bean 映射,您只需要 JBoss 工具集中的这两个组件。
1. JBoss Tools JSF
2. JBoss Tools Visual Page Editor
如果您不选择这些特定工具,则将安装所有 20 多种工具。
另外,请注意,有时您的默认文件 *.xhtml 关联在工具安装后不会更改。您可能必须手动更改文件关联首选项。File>Preference>File Associations.
选择 *.xhtml 并set "JBoss Tools Visual Page Editor" as the default editor.