Comment dois-je configurer la classe pour lier trois listes déroulantes (date, mois, année) à une seule propriété Date afin qu'elle fonctionne comme elle fonctionne pour 'paramètre de requête unique par scénario de propriété? Je suppose que a devrait ajouter des PropertyEditors personnalisés en surchargeant la méthode initBinder. Quoi d'autre ?Printemps MVC: liaison 3 listes déroulantes à une propriété de date dans SimpleFormController
Répondre
Aleksey Kudryavtsev: vous pouvez remplacer la méthode onBind dans votre contrôleur, i qui vous ne pouvez pas violon quelque chose de spécial dans l'objet de commande, comme
dateField = new SimpleFormat("YYYY-mm-dd").parse(this.year + "-" + this.month + "-" this.day);
ou:
Calendar c = Calendar.getInstance();
c.set(year, month, day);
dateField = calendar.getTime();
mais je préfère faire la validation en javascript et utiliser certains avai composant de sélecteur de date lable, il y a beaucoup d'entre eux ...
Vous pouvez créer une entrée masquée dans votre formulaire et la remplir en utilisant JavaScript lorsque l'utilisateur sélectionne la date, puis lier à cette entrée dans votre objet de commande.
Vous utiliserez probablement javascript de toute façon pour vérifier l'exactitude de la date, alors pourquoi ne pas formater la date de disponibilité en un seul paramètre.
Ensuite, vous devez enregistrer un éditeur de propriété qui convertirait de la chaîne "2008-05-20" à l'objet Date.
alors j'aurais trois champs dans mon objet de commande - année, mois, jour et utiliserais validation de printemps standard pour la date de vérification
Comment convertir ces trois champs en une propriété Date? – axk
Je ne l'ai pas essayé, mais vous pourriez essayer de lier à MutableDateTime in the Joda library. Il a séparé setters et getters pour les trois domaines.
Merci pour votre réponse. C'est une bonne idée. Mais y a-t-il un moyen de le faire du côté serveur? – axk