2014-12-16 18 views
7

Ich habe zusammengesetzte Komponenten mit JSF 2.0 in Eclipse entwickelt. Ich habe meine XHTML-Tag-Dateien in den Ordner resources gelegt.Eigenschaften von neuen Tags mit Composite Component werden von Eclipse nicht angezeigt. Auto complete shortcurt

Als ich ctrl getroffen + Raum in Tastatur, sind Eigentum des Tags nicht angezeigt.

Ich fand einige Tipps, die "Jboss-Tools" installieren sollen, aber nicht funktionierten.

<?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> 

Oben ist ein Beispiel für ein Tag erstellt.

Dank

+0

Haben Sie das Problem gelöst? – Ced

+0

Nein, ich warte immer noch auf die Lösung – user3503888

+0

@ user3503888 versuchen, Ihre Eclipse-Version –

Antwort

1

Ich bin mit Eclipse-Mars mit Java EE-Paket, Hibernate Tools und Spring IDE und ich habe gerade überprüft es aus der Box funktioniert.

Stellen Sie sicher, dass sich Ihre Komponente unter webapp/resources/YOUR_COMP_NAME befindet.

ignorieren diese, siehe Ausgabe unter: Überprüfen Sie Ihre Header-Namespace für composite, in Ihrem Beispielcode haben Sie

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

aber in meinem Code ich habe

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

Es macht nichts, ob Sie cc pr composite pr verwenden Efix, aber wie Sie sehen können, ist die URL anders. Siehe this document

Schließlich, wenn Sie diesen Verbund in jede xhtml Seite verwenden, sind sie wie folgt:

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

diese Weise, wenn Sie in Eclipse schreiben <prefix: und drücken ctrl + Raum es zeigt Ihnen die Liste der Komponenten, die Sie haben.

bearbeiten

Ich habe gerade realisiert, dass http://xmlns.jcp.org/jsf/composite die neue URL ist in Substitution von http://java.sun.com/jsf/composite, so habe ich es in meinem Code und es funktioniert bereits.

3

JSF 2.x Facelets Unterstützung wird in "Eclipse IDE for Java EE developers" (man beachte die EE, also nicht "Eclipse-IDE für Java-Entwickler") integriert, da Eclipse-Helios (Version 3.6, veröffentlicht im Juni 2010). Sie müssen sicherstellen, dass die Facette JavaServer Faces in Project Facets Abschnitt der Projekteigenschaften aktiviert ist und auf ein Minimum von Version 2.0 festgelegt ist.

enter image description here

Dies ist in der Regel konfigurierbares während in neuen Dynamisches Webprojekt Assistenten, aber als nicht-Eclipse-Projekte zu importieren oder nicht Dynamic Web-Projekt Projekte (zB Maven Urbilder) zu schaffen, dann müssen Sie manuell überprüfen/hinzufügen.

Sobald die JSF-Tag-Autocomplete integriert ist, ist sie standardmäßig unter java.sun.com XML-Namespace verfügbar.

enter image description here

Die neue xmlns.jcp.org Namespace ist standardmäßig (derzeit getestet Eclipse-Version ist Luna SR2) nicht erkannt.

enter image description here

Der neue xmlns.jcp.org Namespace wird nur funktionieren, wenn Sie eine physische JSF 2.2 Implementierung hinzugefügt haben Weg in Geschmack eines vollwertigen Java EE Container JSF 2.2 in seiner Module über einen anständigen Server integriert, die bauen plugin und als Gezielte Laufzeiten in Projekteigenschaften, oder eine konkrete JSF 2.2-Implementierung JAR-Datei in /WEB-INF/lib im Falle von Tomcat und Klonen (oder indem Sie es als eine Maven-Abhängigkeit hinzufügen).

enter image description here

Es ist nur noch nicht erkennt Composites im neuen XML-Namespace. Beim Zurücksetzen auf java.sun.com ist die Codevervollständigung der zusammengesetzten Komponenten-Tags zurück, aber die Codevervollständigung der Attribute für diese Tags ist nicht verfügbar.

enter image description here

Dann installierte ich JBoss Tools 4.2.3 for Eclipse Luna und aktiviert die JBoss-Tools Knowledge Base in Eigenschaften des Projekts.

enter image description here

Nach dem Schließen und die Facelet Wiedereröffnung, und die Umstellung auf die Quelle Registerkarte (so JBoss builtin HTML-Editor geöffnet wird Sie können den Editor durch Rechtsklick, Öffnen mit verwendet gesetzt/konfigurieren) (Bitte verwenden Sie nicht Visual Editor, das ist eine Katastrophe), bekam ich schließlich Code Completion von Attributen auf Composite-Komponenten.

enter image description here

Nur die xmlns.jcp.org funktionierte immer noch nicht. Es ist ein Eclipse-spezifisches Problem und wahrscheinlich bereits in Mars oder neuer behoben.Sie können immer den Composite-Namensraum hinter einem benutzerdefinierten XML-Namespace verstecken wie folgt:

/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

Also, zusammengefasst:

  • Aktivieren Sie in den Projekteigenschaften den JSF-Projektfacet für die Codevervollständigung in zusammengesetzten Tags.
  • Installieren Sie JBoss Tools für die Codevervollständigung auf Attributen in zusammengesetzten Tags.
  • Aktivieren Sie die JBoss Tools Knowledge Base in den Projekteigenschaften.
  • Haben Sie eine physische JSF 2.2 impl JAR in Buildpath für xmlns.jcp.org Unterstützung für Standard-Tags.
  • Verwenden Sie java.sun.com XML-Namespace-Domäne oder eine benutzerdefinierte Taglib (oder eine neuere Eclipse-Version) auf Composite-Tags.
+0

Wie Sie sagten, in der Luna-Version funktioniert der neue Namensraum immer noch nicht. –