Au travail, nous discutons de la mise à niveau de notre couche de vue pour notre application Web. Nous utilisons actuellement une version ancienne et "modifiée" de FreeMarker Classic, ce qui est pénible à utiliser. Un de nos développeurs a suggéré d'utiliser une architecture de style d'interface utilisateur similaire à celle des environnements de bureau. Essentiellement, cela signifierait que vous construiriez des composants HTML personnalisés en tant que classes Java que le contrôleur rendrait dans la vue Document. Cela enlèverait complètement le besoin d'écrire du HTML dans une couche de vue. Les composants généreraient la couche de vue pour vous.Implémentations d'interface utilisateur de type bureautique pour les applications Web Java?
Par exemple, les éléments suivants rendu HTML:
<h1>I am a title</h1>
<p>I am a paragraph.</p>
serait généré en faisant quelque chose comme:
String titleString = "I am a title";
html.elements.Heading heading = new html.elements.Heading(Heading.H1, titleString);
String paraString = "I am a paragraph.";
html.elements.Paragraph paragraph = new html.elements.Paragraph(paraString);
PrintWriter somePrintWriter = new PrintWriter();
Document document = new Document();
document.addElement(heading);
document.addElement(paragraph);
document.compose(somePrintWriter);
Le code ci-dessus est juste un exemple, ne pas critiquer les noms ou le style Je viens de l'écrire pour une démonstration rapide de ce que nous essayons d'accomplir. J'essaie de déterminer si cela a déjà été fait en Java, et si oui, s'il y a des liens, je peux être pointé vers. Je l'ai recherché autant que possible, mais je n'ai trouvé aucune implémentation qui supprime complètement la couche du template (comme JSP ou JSF).
Merci!
Vous ne voulez pas du tout de calque de modèle? J'ai fait un post mais je l'ai rapidement effacé quand j'ai lu votre dernière phrase. – MattC
À droite, nous essayons de voir si nous pouvons éliminer entièrement la modélisation, puisque toute la logique métier du contrôleur peut gérer ce qui est présenté dans la vue. – localshred
Beaucoup de réponses sont centrées sur des frameworks à part entière. C'est super à voir, mais nous sommes plus intéressés par la boîte à outils GUI que nous pouvons intégrer à notre système existant. Je ne sais pas si c'est là-bas, mais tout de même, je veux juste être clair. – localshred