Je dois créer un panneau de façon dynamique en utilisant des composants personnalisés jsf 2.0. Les contrôles dans le panneau seront lus dynamiquement à partir d'un XML et rendus sur la sélection de l'objet correspondant (Ex: Si Person est sélectionné, je devrais rendre un panneau qui aura des contrôles liés à la personne comme: Champ d'âge de la personne (inputtext), Personne DOB (calendrier) et ainsi de suite). J'essaie de le rendre à partir de la classe de composant qui étend UIComponentBase.Aide sur les composants personnalisés et les Primefaces JSF 2.0
ResponseWriter writer = Util.getResponseWriter(context);
//start the <table> tag
writer.startElement(Constants.STR_TABLE, this);
//start the <tr> tag
writer.startElement(Constants.STR_TR, this);
//start the <td> tag
writer.startElement(Constants.STR_TD, this);
//encode the button 1 component inside this <td>
encodeAllComponent(context, getMyPrimePanel());
// end the <td> tag
writer.endElement(Constants.STR_TD);
//end the <tr> tag
writer.endElement(Constants.STR_TR);
//end the <table> tag
writer.endElement(Constants.STR_TABLE);
//private variable to render a panel
private Panel myPrimePanel;
/**
* @return the myPrimePanel
*/
public Panel getMyPrimePanel() {
System.out.println("inside the panel get method------");
if (myPrimePanel.getChildCount() <= 1) {
System.out.println("inside the panel creation function");
InputText input = new InputText();
myPrimePanel.getChildren().add(input);
}
System.out.println("inside the panel get method-------------");
return myPrimePanel;
}
/**
* @param myPrimePanel the myPrimePanel to set
*/
public void setMyPrimePanel(Panel myPrimePanel) {
System.out.println("inside the panel get method-------------");
//initialize the button 1 component
this.myPrimePanel = myPrimePanel;
}
Je l'ai fait de cette façon. Mais je reçois une exception de pointeur nul. Comment le panneau avec les contrôles définis peut-il être rendu dynamiquement?
C'est ce que je veux -
==== ==== Commencera rendu dans la méthode get panneau ------ 7 septembre 2011 10:01:42 com.sun.faces.context.PartialViewContextImpl $ PhaseAwareVisitCallback visite SEVERE: java.lang.NullPointerException
Vérifiez la trace de pile de l'exception (dans le journal du serveur). Il doit y avoir un numéro de ligne pour le NPE, tel que "NullPointerException à la ligne xy". Dites-nous quelle ligne il est dans votre code. Cela nous permettrait de vous aider plus facilement. –
Merci pour la réponse. Mais il ne montre aucun numéro de ligne. – JaveDeveloper