2010-09-13 2 views
3

J'écris une application qui sert de panneau d'administration en utilisant JSF 2.0 et Hibernate. J'ai une page JSP avec un formulaire JSF dont les éléments sont ajoutés dynamiquement en utilisant javascript (jQuery pour être spécifique). Je ne peux donc faire aucune hypothèse sur la quantité de données que je dois traiter. J'ai un bean géré mais je ne sais pas comment mettre les getters et setters pour les champs dynamiques que je veux sauvegarder dans une base de données. La solution semble utiliser une liste plutôt qu'un seul élément mais comment utiliser l'étiquette de valeur de l'élément JSF? Se pourrait-il quelque chose comme ceci:JSF 2.0 Enregistrement d'un formulaire dynamique dans une base de données

<h:form> 
<h:inputText id="i1" value="#{UserBean.list}" /> 
<h:inputText id="i2" value="#{UserBean.list}" /> 
<h:commandbutton id="submit" value="Submit" action="#{UserBean.submit}"/> 
</h:form> 

et le haricot géré:

@ManagedBean(name="UserBean") 
@RequestScoped 
public class UserBean { 

    public UserBean() { 
     List<String> list = null; 


} 
    public List getList() { 
    return list; 
} 
    public List setList(List<String> newlist) { 
    list = newList; 
} 

} 

Cependant, le code ci-dessus ne ne semble pas correct et certainement fonctionne pas. J'ai besoin de lier deux ou plusieurs valeurs du texte en entrée à la même liste. Quelqu'un at-il des suggestions pour le résoudre? Merci d'avance. Cordialement, sass.

Répondre

5

Vous ne pouvez pas ajouter de composants JSF de façon dynamique en utilisant jQuery. Tout le jQuery peut traverser et manipuler l'arbre DOM HTML "plain vanilla" du côté client. Il n'a aucune notion de l'arbre des composants JSF car il est généré et maintenu côté serveur. JSF à son tour ne sait rien sur les changements d'état dans l'arborescence DOM HTML faite par "plain vanilla" jQuery/JavaScript car il ne prévient pas JSF sur le côté serveur sur les changements. JSF s'appuie sur l'arborescence des composants JSF pour traiter les soumissions de formulaire, et non sur l'arborescence DOM HTML.

Vous souhaitez modifier l'arborescence des composants JSF dynamiquement à l'aide de JSF. Étant donné que cela va être une longue histoire pour expliquer en détail, voici quelques liens vers des questions similaires avant que je répondais à commencer:

Questions connexes