2017-05-11 6 views
1

J'ai créé un composant personnalisé qui est utilisé en vue xhtml et prend la valeur d'attribut et l'imprime (comme helloworld dans le code ci-dessous), dans JSF 2.1, en utilisant Netbeans8.1 et glassfish4.1. J'ai créé un composant personnalisé en étendant la famille substituée UIComponentBase et en codant la classe de balise de début et de balise de composant personnalisé en étendant UIComponentELTag en remplaçant les méthodes componentType et rendererType. J'ai défini une bibliothèque de balises pour test.taglib.xml et l'ai enregistrée dans web.xml.Problème de composant personnalisé JSF2

Ci-dessous le code de la vue.

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

Le problème est - il affiche seulement la valeur html et ne pas afficher la valeur d'attribut de composant personnalisé.

Le même exemple fonctionne lorsque j'ai essayé d'afficher jsp (avec le fichier tld).

J'ai essayé d'utiliser des balises de composant personnalisées directement ou en tant qu'enfant de ui: composition mais pas de chance.

J'ai mis un point d'arrêt dans le composant personnalisé et j'ai essayé de déboguer, mais le contrôle ne va même pas au point de rupture.

Étant donné que le contrôle ne va pas au point de rupture, cela signifie-t-il que mon composant personnalisé n'est pas enregistré par le servlet? Si c'est le cas, dites-moi ce que je fais de mal.

Je suis nouveau à JSF alors s'il vous plaît dites-moi s'il me manque un point.

J'ai essayé la même chose avec JSF2.2.7 mais cela présente également le même problème.

Répondre

0

Je ne peux pas trouver la cause première mais j'ai résolu mon problème. J'ai essayé le même code avec JSF 2.2.7 jar mais j'ai utilisé des annotations à la place. Comme mentionné dans le problème que cela n'a pas fonctionné avec 2.2.7, était parce que j'utilisais le vieux code de mode, comme la création de taglib et la mise à jour dans le descripteur de déploiement.