JSF2 + CDI(焊接)bean + Eclipse Helios的内容辅助

ber*_*tie 8 eclipse jsf cdi helios jsf-2

我在eclipse helios中尝试JSF2 CDI(焊接)bean而不是ManagedBeans,但不能在我的Namedbean 的表达式语言中自动完成(#{myNamedBean.Ctrl+ Space}thingy)

但是使用ManagedBeans的OTOH,内容辅助效果很好.. Eclipse Helios中是否支持CDI bean的内容辅助?

有人有这方面的经验吗?

alf*_*onx 13

  1. 安装JBoss工具.然后通过添加<nature>org.jboss.tools.jsf.jsfnature</nature>到文件的natures部分,.project我的Eclipse J2EE Helios版本中的支持得到了改进.(此步骤可能Configure->Add JSF Capabilities与项目设置中的步骤相同.)然后,上下文完成适用于cc.attrs.<ctrl-space>构建组件组合时,但遗憾的是仍然不适用于任何@ManagedBeans.

  2. 从ManagedBeans切换到CDI:我将所有@ManagedBeans 更改为@javax.inject.Named和范围@javax.enterprise.context.*Scoped等.我还在项目设置中启用了CDI支持.然后我在bean上获得上下文完成.xhtml!

第一个限制:仅当EL是属性值的一部分时才有效.如果您只是使用页面#{EL}上的其他位置,它将无法工作.xhtml.

第二个限制:如果通过常量定义bean的名称,则无法识别上下文竞争:不起作用:@Named(value = MyBean.BEANNAME).您必须将名称设置为String,如:@Named(value = "myBean")

第三个限制:如果使用参数化方法调用(例如使用Tomcat7或Glassfish),则自动完成不支持此功能.自动完成仅显示bean的get/set/is属性.

注意:它在Netbeans 7中开箱即用.

  • 对于CDI Beans(安装了JBoss Tools),右键单击该项目,然后单击Configure - > Add CDI(Context and Dependency Injection)支持... (4认同)