2009-08-19 4 views
1

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!

+0

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

+0

À 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

+0

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

Répondre

0

Que diriez-vous de GWT?

+0

Cela semble plus orienté vers Ajax que nous recherchons, sauf si je manque complètement quelque chose. C'est certainement dans le même sens cependant. – localshred

0

Echo2/Echo3 peut être utile.

Echo est une plate-forme pour la construction de applications basées sur le Web qui approche les capacités des clients riches. Les applications sont développées à l'aide d'une API orientée composants et pilotée par événement , ce qui élimine le besoin de traiter la nature «basée sur les pages» des navigateurs. Pour le développeur, Echo fonctionne comme une boîte à outils de l'interface utilisateur.

+0

Cela ressemble à la chose la plus proche de ce que nous essayons d'accomplir. La seule chose est que c'est un cadre complet, que nous n'aurions pas la capacité de mettre en œuvre. Nous cherchons strictement l'architecture de vue. – localshred

0

J'ai utilisé GWT-Ext pour créer une apparence de bureau pour une application Web basée sur Java. Il a été très bien reçu et se sent vraiment comme si vous n'étiez pas dans un navigateur Web du tout.

+0

Je vais vérifier cela, mais je ne suis pas sûr que nous cherchons une implémentation de type SproutCore, où l'application ressemble à une application de bureau. Nous voulons juste les techniques de style de l'interface utilisateur du composant. – localshred

0

Click est assez proche de ce que vous décrivez. Il utilise Velocity, mais si vous jetez un oeil à l'exemple Advanced Forms, le modèle était très basique.

wingS est un autre qui semble être proche de ce que vous voulez. C'est censé être Swing.

2

Il existe une méthode Java pure où TOUT est construit en Java. Check it out ici http://www.zkoss.org/

MISE À JOUR: J'ai trouvé encore mieux. Aussi pur Java.

Questions connexes