Cadres de formulaire Web en Java


Quels sont les moyens couramment utilisés pour créer des formulaires Web en Java et Groovy?

Spring et Grails fournissent des taglibs correspondants, mais je me demande s'il existe des frameworks de formulaires, qui permettent de créer des formulaires en tant qu'ensembles d'objets, de manipuler dynamiquement les éléments, d'intégrer des sous-formulaires, de remplir et de valider, et de rendre.

Par exemple, si j'ai un groupe de champs commun pour un certain nombre de formes, je voudrais réutiliser le code. En outre, un tel groupe d'éléments, à son tour, peut être un partie d'un autre groupe. Je voudrais également réorganiser dynamiquement les éléments, changer les noms de champs et autres attributs de champ de saisie, et ainsi de suite sans modifier le code HTML.

Author: AHungerArtist, 2011-12-20

3 answers

Vous pouvez essayer open-source Bibliothèque Formio. Il peut être utilisé dans de nombreux environnements/frameworks et avec divers frameworks de modèles.

Avec Formio, vous pouvez manipuler des formulaires à l'aide d'objets: Créer des définitions de formulaires - mappages, des définitions de champs de formulaire et des mappages imbriqués (pour les objets imbriqués comme l'adresse de la personne ou la liste d'adresses). Les mappages et les champs de formulaire peuvent être définis comme des objets réutilisables (immuables) et composés ensemble. Vous pouvez utiliser des mappages imbriqués pour modéliser réutilisables" groupes " de champs de formulaire (et de les imbriquer dans d'autres groupes).

Formio prend en charge la liaison de données d'un objet Java à une définition de formulaire qui peut ensuite être transmise à un modèle et rendue. Les données de la requête peuvent être validées (à l'aide de l'API bean validation) et liées à l'objet Java (à une instance nouvellement créée ou à une instance fournie). La liaison de types Java de base, de types d'objets imbriqués, de collections ou de tableaux (de primitives ou d'objets complexes) est prise en charge. Les classes immuables peuvent être utiliser.

La définition du formulaire peut être préremplie avec des données (avant de passer au modèle) et remplie avec des données (validées) de la demande. La liaison bidirectionnelle automatique des données est implémentée dans les méthodes" fill "et" bind " sur l'objet de définition de formulaire.

Formio est une bibliothèque centrée sur le serveur, mais peut être combinée avec des bibliothèques côté client existantes. Le rendu est laissé au système de modèles. Par exemple, en utilisant JSP, vous pouvez préparer vos propres balises réutilisables pour rendre la définition de formulaire rempli de données et de ses parties (mappages imbriqués, différents types de champs de formulaire) qui contiennent déjà toutes les données nécessaires au rendu, y compris des indicateurs tels que visible, enabled, readonly, required. Vous pouvez définir vos propres attributs de champ personnalisés et les utiliser dans des balises/extraits de modèle réutilisables afin que le code HTML n'ait pas besoin d'être modifié dans la plupart des cas.

Note: Je suis l'auteur de la bibliothèque, vous pouvez trouver les sources sur le GitHub et faire votre fork. Consultez la documentation pour plus d'informations détail.

 1
Author: Radek Beran, 2014-10-05 10:55:53

Ce dont vous avez besoin est un framework de templating/layout qui vous permettra de réutiliser des extraits de code.

Dans l'espace de développement web java, Tiles est le framework de facto pour les mises en page. Grails et Spring MVC prennent en charge les tuiles.

 0
Author: Aravindan R, 2011-12-20 02:07:51

Je n'ai pas rencontré de framework MVC qui exposerait une interface complète à la gestion des données de formulaire en tant qu'objets, dans les deux sens. Il y a toujours un codage manuel qui est nécessaire pour traduire les données de formulaire en objets, et inversement.

Il existe des frameworks alternatifs, comme Echo (http://echo.nextapp.com/site/) qui isolent complètement l'application des relations avec les demandes et les réponses, ils peuvent être plus adaptés au type d'abstraction que vous recherchez.

 0
Author: Pawel Veselov, 2012-12-05 21:03:00