J'ai un formulaire assez complexe avec de nombreux champs et validateurs. Pour l'utilisateur, cela prend beaucoup de temps (même plus d'une heure) pour le remplir, donc ils aimeraient pouvoir enregistrer les données de brouillon, même si cela enfreint des règles telles que des champs obligatoires non saisis.
Je pense que ce problème est commun à de nombreuses applications web, mais je ne trouve aucun schéma bien reconnu sur la manière dont cela devrait être implémenté. Pouvez-vous s'il vous plaît me conseiller sur la façon d'y parvenir?
Pour l'instant, je vois les options suivantes:
- l'utilisation de immediate=true sur le bouton "Enregistrer le brouillon" ne fonctionne pas, car les données de l'interface utilisateur ne seraient pas stockées dans le bean, je ne pourrais donc pas y accéder. Techniquement, je pourrais trouver les données dans l'arborescence des composants d'interface utilisateur, mais il ne semble pas être une bonne idée de la traverser.
- supprimer toutes les validations des champs de la page et valider les données de manière programmatique dans le gestionnaire d'événements défini pour le formulaire. Encore une fois, ce n'est pas une bonne idée, le formulaire est vraiment complexe, il y a beaucoup de champs donc la validation mise en œuvre de cette manière serait très confuse.
- implémenter mes propres validateurs, qui seraient contrôlés par un attribut de requête, qui serait défini pour une soumission de formulaire standard (avec une validation complète attendue) et serait désactivé pour une soumission "sauvegarde en tant que brouillon" (où la validation doit être ignorée). Encore une fois, ce n'est pas une bonne solution, je devrais fournir mes propres wrappers pour tous les validateurs que j'utilise.
Mais comme vous le voyez, aucune n'est vraiment raisonnable. Y a-t-il vraiment aucune solution simple à ce problème?