Bonjour à tous,
je vais vous exposer un problème qui, à mon avis, n'est pas super simple à résoudre. C'est à la limite du défi...![]()
Je vais essayer d'être clair.
L'objectif est d'être capable de permettre à un utilisateur lambda de se créer ses propres écrans à l'aide d'un outils graphique (qui n'existe pas) et de les intégrer au framework struts existant, donc d'utiliser toute les fonctionnalités de Struts, le tout sans redémarrage du serveur.
Voici en gros la logique fonctionnelle:
1- L'utilisateur défini le type de donnée qu'il veut manipuler.
Par exemple une donnée qui s'appelle "Nom" de type texte, de longueur 50 car. ne comportant pas de chiffre.
Toutes les données sont stockées et utilisable sur n'importe quel page à venir.
2- L'utilisateur crée graphiquement le formulaire.
Il utilise un outil graphique (qui reste à définir) qui lui permet de positionner les données qu'il a défini au 1.
Le résultat est sauvegardé au format XML pour pouvoir être re-modifié ensuite.
Jusque là il n'y a rien de bien compliqué. Maintenant il faut réaliser l'affichage et ça se corse.
3- La page doit être générée.
On peut utiliser une JSP générique qui contient un tag d'une taglib maison qui appelle le fichier XML et génére correctement le code. Ca c'est pas trop compliqué, on doit être capable de générer le formulaire qui s'appui sur une description XML en utilisant une taglib.
4- Les données doivent être validées
Là je sais pas du tout comment faire!!!!
Impossible de modifier le struts-config à la volée donc de créer un validate.xml spécifique à mon formulaire.
Pourtant je dois être capable de faire une validation de premier niveau de mon formulaire (si je tape des chiffres dans un champs texte par exemple).
5- Les données sont envoyer à mon ActionForm pour être persistées
L'idée c'est de créer un ActionForm générique et un FormBean générique qui s'appuie aussi sur le fichier XML de départ pour connaitre la structure des données qu'il doit manipuler.
Je ne pense pas que ce soit très compliqué à réaliser.
La cerise sur le gâteau!!
L'utilisateur doit être capable d'insérer son formulaire n'importe où dans un enchainement déja existant!!
En gros si l'enchainement suivant Form1->Form2->Form3 est décrit dans le struts-config.xml l'utilisateur doit pouvoir faire Form1->SonForm->Form2->Form3 sans toucher au struts-config
Pour faire ça je pense créer un ActionForm générique par lequel l'ensemble des actions passent et faire une interruption lorsque nécessaire.
Le pb que j'ai c'est d'être capable de récupérer simplement les enchainements décrits dans le struts-config pour les présenter à l'utilisateur lors de la création de son formulaire.
Je dois pouvoir lui dire "Où voulez-vous insérer votre formulaire?" et qu'il me réponde "Entre Form1 et Form2"
J'ai pas menti quand j'ai dit qu'il s'agissait d'un défi![]()
Si vous avez des idées je suis preneur!!!
Merci d'avance
Cédric
Partager