Content Assist для компонентов JSF2 + CDI (сварка) + Eclipse Helios

Я пытаюсь использовать компоненты JSF2 CDI (сварные) в eclipse helios вместо ManagedBeans, но не могу выполнить автоматическое завершение внутри языка выражений для моих компонентов Named (нажатие #{myNamedBean.Ctrl+Пробел} штучка)

Но OTOH с ManagedBeans, помощник по содержимому работает хорошо. Поддерживается ли помощник по содержимому для CDI-бинов в Eclipse Helios?

У кого-нибудь есть опыт в этом?


person Albert Gan    schedule 08.11.2010    source источник


Ответы (3)


  1. Установите инструменты JBoss. Затем, добавив <nature>org.jboss.tools.jsf.jsfnature</nature> в раздел natures файла .project, поддержка улучшилась в моей версии Eclipse J2EE Helios. (Этот шаг, вероятно, равен Configure->Add JSF Capabilities в настройках проекта.) Затем завершение контекста работает для cc.attrs.<ctrl-space> при построении композиций компонентов, но, к сожалению, все еще не для @ManagedBean.

  2. Переключиться с ManagedBeans на CDI: я ​​изменил все @ManagedBean на @javax.inject.Named, а области видимости на @javax.enterprise.context.*Scoped и т. д. Я также включил поддержку CDI в настройках проекта. Затем я получаю завершение контекста для bean-компонентов в .xhtml!

Первое ограничение: оно работает только тогда, когда EL является частью значения атрибута. Это не сработает, если вы просто используете #{EL} в другом месте на странице .xhtml.

Второе ограничение: если вы определяете имя вашего bean-компонента через константу, оно не распознается для контекстной конкуренции: не работает: @Named(value = MyBean.BEANNAME). Вы должны установить имя как строку, например: @Named(value = "myBean")

Третье ограничение: если вы используете вызовы параметризованных методов (например, с Tomcat7 или Glassfish), это не поддерживается автозаполнением. Автозаполнение показывает только свойства bean-компонента get/set/is.

Примечание. В Netbeans 7 это работает сразу после установки.

person alfonx    schedule 04.05.2011
comment
Когда мы добавляем <nature>org.jboss.tools.jsf.jsfnature</nature> в файл .project, возникает ли проблема с развертыванием проекта на Glassfish или с использованием плагина Glassfish в Eclipse? И какие из всех инструментов JBoss мы должны установить, чтобы получить помощь по содержимому для лицевых панелей, когда мы не хотим устанавливать все инструменты JBoss? - person Svetoslav Marinov; 29.04.2012
comment
Во-первых: я не думаю, что возникнут какие-либо проблемы с Glassfish. Второе: попробуйте все с JSF и CDI в именах. - person alfonx; 01.05.2012
comment
С Eclipse Kepler и JBoss Tools 4.1.0.1: @ManagedBeans работает, автодополнение работает для выражений EL везде, а не только в атрибутах, а также автозаполнение вызовов параметризованных методов. - person prunge; 28.11.2013
comment
Для CDI Beans (с установленными JBoss Tools) щелкните проект правой кнопкой мыши, затем выберите «Настройка» -> «Добавить поддержку CDI (внедрение контекста и зависимостей)»... - person Vinícius Fonseca; 21.05.2014

Если есть какая-либо поддержка, она будет из JBoss Tools.

person Bozho    schedule 10.11.2010
comment
спасибо за информацию, но я думал о чем-то, что не относится к jboss - person Albert Gan; 16.11.2010
comment
@Albert Kam, я думаю, это плагин для eclipse - person Bozho; 16.11.2010

Прежде чем устанавливать JBossTools, обратите внимание, что для автоматической полной поддержки EL и сопоставления управляемых компонентов все, что вам нужно, — это эти 2 компонента из набора инструментов 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.

person ChaitanyaBhatt    schedule 07.06.2015