2016-03-18 4 views
0

J'ai créé un simple flux Web.Flux Web de printemps ne détient pas la valeur du champ de l'objet

enter image description here

Il a deux étapes. Dans la première étape, vous devez entrer le nom du groupe et dans la seconde un contact. Le contact est ajouté au groupe lorsque vous cliquez sur add contact. En cliquant puis sur save group le groupe doit être enregistré. Pratiquement cela fonctionne, mais je ne rencontre qu'un seul problème que je ne comprends pas. L'instance de EmailGroupForm contient dans la collection tous ContactForm, mais chaque ContactForm possède des champs vides.

ici est le diagramme de classes:

enter image description here

Je déboguée à la méthode, où le ContactForm est ajouté à EmailGroupForm. Tous les ContactForm sont initialisés. J'ai noté, que dans chaque méthode, il existe une instance différente de ContactForm. Je pense que c'est la raison de la question, mais je ne suis pas sûr. Je ne comprends pas où est mon erreur de pensée.

S'il vous plaît aider

Le projet tutorial.spring4-tiles-simple-webflow est dans gihub

Répondre

0

Je pense que le liant au printemps par défaut webflow est de la difficulté à cartographier les champs de formulaire à la carte complexe de type carte après que vous cliquez sur Soumettre/enregistrer

Essayez de changer

de:

public class OrderForm implements Serializable { 

    private Map <Book, Integer> selectedBooks = new HashMap<Book, Integer>(); 

Pour:

import org.springframework.util.AutoPopulatingList; 

    public class OrderForm implements Serializable { 

private AutoPopulatingList<Book> selectedBooks = new AutoPopulatingList<Book>(Book.class) 

... 

Voir cette réponse que j'ai écrit sur une question similaire pour plus de détails:

spring webflow submit array with new items

+0

Merci pour la réponse. Malheureusement, cela ne fonctionne pas –

+1

@student après une analyse plus approfondie, cela pourrait être un problème de portée variable. Essayez de changer 'flowScope.contactForm' -> 'viewScope.contactForm' Je pense et assurez-vous que vous êtes init ContactForm tout ce que vous entrez dans la vue pour ajouter un nouveau contact. – Selwyn

+0

OUI, merci pour l'idée! J'ai déplacé l'appel 'groupController.createNewContact()' de mon '' à l'état suivant ''. Et maintenant ça marche. –