2017-05-11 4 views
1

Ich habe eine benutzerdefinierte Komponente erstellt, die in XHTML View verwendet wird und es nimmt den Attributwert und drucken Sie es (wie Helloworld in unter Code), in JSF 2.1, Netbeans8.1 und Glassfish4.1 verwenden. Ich habe eine benutzerdefinierte Komponente erstellt, indem Sie die UIComponentBase-Überschreibung der Familie erweitert und die Begin- und die benutzerdefinierte Komponenten-Tag-Klasse codiert haben, indem Sie UIComponentELTag über die Methoden componentType und rendererType hinaus erweitert haben. Ich habe eine Tag-Bibliothek für die Datei test.taglib.xml definiert und in web.xml registriert.JSF2 benutzerdefinierte Komponente Problem

Unten ist der Ansichtscode.

<?xml version='1.0' encoding='UTF-8' ?> 
 
<!DOCTYPE html> 
 
<html xmlns="http://www.w3.org/1999/xhtml" 
 
     xmlns:h="http://xmlns.jcp.org/jsf/html"> 
 
<h:body> 
 

 
    <h2>JSF Custom Input FacesComponent Example</h2> 
 
    <h:form> 
 
     <ui:composition 
 
        xmlns:custom="http://packt.net/cookbook/components" 
 
         xmlns:ui="http://java.sun.com/jsf/facelets"> 
 
      <custom:testInput helloworld="test component!!"/> 
 
     </ui:composition> 
 
    </h:form> 
 

 
</h:body> 
 
</html>

Das Problem ist - es wird nur den HTML-Wert anzeigt und nicht den benutzerdefinierten Komponente Attributwert anzeigt.

Das gleiche Beispiel funktioniert, wenn ich für JSP-Ansicht (mit Tld-Datei) versuchte.

Ich habe versucht, benutzerdefinierte Komponente Tag direkt oder als Kind von ui: Zusammensetzung, aber kein Glück.

Ich legte einen Unterbrechungspunkt in der benutzerdefinierten Komponente und versuchte zu debuggen, aber die Kontrolle geht nicht einmal zum Unterbrechungspunkt.

Da die Kontrolle nicht unterbrochen wird, bedeutet dies auch, dass meine benutzerdefinierte Komponente nicht vom Servlet registriert wird? Wenn ja, sag mir bitte, was ich falsch mache.

Ich bin neu in JSF, also bitte sag mir, wenn ich irgendeinen Punkt vermisse.

Ich habe das gleiche mit JSF2.2.7 versucht, aber das zeigt auch das gleiche Problem.

Antwort

0

Ich kann die Ursache nicht finden, aber mein Problem wurde gelöst. Ich habe den gleichen Code mit JSF 2.2.7 Jar versucht, aber ich habe stattdessen Anmerkungen verwendet. Wie in dem Problem erwähnt, dass es mit 2.2.7 nicht funktioniert hat, war, weil ich alten Modecode benutzte, wie Taglib erstellen und es im Deployment Deskriptor aktualisieren.