7

Я разработал составные компоненты, используя JSF 2.0 в Eclipse. Я помещал свои файлы тегов XHTML в папку resources.Свойства новых тегов с использованием композитного компонента не отображаются в Eclipse auto complete shortcurt

Когда я ударил Ctrl + пространство в клавиатуре, свойство тега не отображаются.

Я нашел несколько советов, которые сказали установить «Инструменты Jboss», но не работали.

<?xml version='1.0' encoding='UTF-8' ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:cc="http://xmlns.jcp.org/jsf/composite" 
     xmlns:h="http://xmlns.jcp.org/jsf/html" 
     xmlns:f="http://xmlns.jcp.org/jsf/core" 
     xmlns:p="http://primefaces.org/ui"> 

    <cc:interface> 
     <cc:attribute name="value"/> 
     <cc:attribute name="label"/> 
     <cc:attribute name="masculino" default="true"/> 
    </cc:interface> 

    <cc:implementation> 
     <p:selectOneMenu value="#{cc.attrs.value}" label="#{cc.attrs.label}"> 
      <f:selectItem itemValue="#{null}" 
          itemLabel="#{cc.attrs.masculino ? lbl['LABEL.TODOS'] : lbl['LABEL.TODAS']}" /> 
      <f:selectItem itemValue="true" itemLabel="#{lbl['LABEL.SIM']}" /> 
      <f:selectItem itemValue="false" itemLabel="#{lbl['LABEL.NAO']}" /> 
     </p:selectOneMenu>         
    </cc:implementation> 

</html> 

Выше приведен пример одного тэга.

Благодаря

+0

Вы решили эту проблему? – Ced

+0

Нет, я все еще жду решения – user3503888

+0

@ user3503888 попробуйте обновить версию вашего затмения –

ответ

1

Я использую Eclipse, Марс с пакетом Java EE, Hibernate инструментов и Spring IDE, и я только что проверил это работает из коробки.

Убедитесь, что ваш компонент находится под webapp/resources/YOUR_COMP_NAME.

Игнорирует это, смотрите издание ниже: обзор пространства имен заголовка для composite, в примере кода у вас есть

xmlns:cc="http://xmlns.jcp.org/jsf/composite" 

, но в моем коде я имею

xmlns:composite="http://java.sun.com/jsf/composite" 

Не против, если вы используете cc pr composite pr efix, но, как вы можете видеть, URL-адрес отличается. См this document

Наконец, когда вы используете этот композит в любую страницу Xhtml, включите его следующим образом:

xmlns:prefix="http://java.sun.com/jsf/composite/YOUR_COMP_NAME" 

Таким образом, когда вы пишете в затмении <prefix: и нажмите Ctrl + пространство его покажет вам список компонентов, которые у вас есть.

Редактировать

Я просто понял, что http://xmlns.jcp.org/jsf/composite это новый URL в замещении http://java.sun.com/jsf/composite, поэтому я изменил его в своем коде, и это уже работает.

3

поддержка JSF 2.x Facelets интегрирован в "Eclipse IDE for Java EE developers" (обратите внимание на EE, таким образом, не "Eclipse IDE для Java-разработчиков"), так как Eclipse, Helios (версия 3.6, выпущенный июнь 2010). Вы должны убедиться, что фасет JavaServer Faces включен в Раздел «Фазы проекта» раздел свойств проекта и установлен как минимум в версии 2.0.

enter image description here

Это обычно configureable во время в новом Динамического Web-проект мастера, но при импорте не-Eclipse, проектов или создания Непро- Dynamic Web Project проектов (например, Maven архетипов), то вам нужно вручную проверить/добавить его.

После интегрирования автозаполнение тега JSF по умолчанию доступно на java.sun.com пространстве имен XML.

enter image description here

Новый xmlns.jcp.org пространство имен не распознается по умолчанию (в настоящее время испытания версии Eclipse, это Luna SR2).

enter image description here

Новые xmlns.jcp.org пространство имена будут работать только если вы добавили физическую реализацию JSF 2.2 для построения пути в аромате полноценного Java EE контейнера с JSF 2.2 в своих модулях, интегрированной с помощью приличного сервера плагин и установить как Целевые Runtimes в свойствах проекта, или конкретный JAR-файл JSF 2.2 для реализации в /WEB-INF/lib в случае Tomcat и клонов (или путем добавления его как зависимости Maven).

enter image description here

Это только до сих пор не признает композиты в новом пространстве имен XML. При возврате к java.sun.com завершение кода составных компонентных тегов возвращается, но завершение кода атрибутов в этих тегах недоступно.

enter image description here

Затем я установил JBoss Tools 4.2.3 for Eclipse Luna и включен в базуJBoss Tools знаний в свойствах проекта.

enter image description here

После закрытия и повторного открытия Facelet (так получает открытый редактор JBoss встроенный HTML, вы можете установить/настроить редактор, используемый RightClick, Открыть с помощью), и переключение на вкладке Source (пожалуйста, не используйте Редактор Visual, это катастрофа), я, наконец, получил завершение кода для атрибутов составных компонентов.

enter image description here

Только xmlns.jcp.org до сих пор не работает. Это особая проблема Eclipse и, вероятно, уже исправлена ​​на Марсе или новее.Вы всегда можете скрыть составное пространство имен позади пользовательского пространства имен XML, как показано ниже:

/WEB-INF/my.taglib.xml

<?xml version="1.0" encoding="UTF-8"?> 
<facelet-taglib 
    xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facelettaglibrary_2_2.xsd" 
    version="2.2" 
> 
    <namespace>http://example.com/my</namespace> 
    <composite-library-name>components</composite-library-name> 
</facelet-taglib> 

/WEB-INF/web.xml

<context-param> 
    <param-name>javax.faces.FACELETS_LIBRARIES</param-name> 
    <param-value>/WEB-INF/my.taglib.xml</param-value> 
</context-param> 

enter image description here

Итак, резюмировать:

  • Включить грань проекта JSF в свойствах проекта для завершения кода в составных тегах.
  • Установите JBoss Tools для завершения кода по атрибутам в составных тегах.
  • Включить JBoss Tools База знаний в свойствах проекта.
  • Имейте физический JSF 2.2 impl JAR в путь построения для xmlns.jcp.org Поддержка стандартных тегов.
  • Используйте java.sun.com домен пространства имен XML или пользовательский taglib (или более новую версию Eclipse) в составных тегах.
+0

Как вы сказали, в версии Luna новое пространство имен все еще не работает. –

 Смежные вопросы

  • Нет связанных вопросов^_^