Pour la compilation frontend pure, il existe plusieurs options, darioo mentionné Google Web Toolkit, bien que ce soit tout niveau très bas et donc plus difficile à lancer dans la boîte. Il existe plusieurs frameworks GUI basés sur GWT.
Sur ces trois, j'entends nos Java devs sont les plus heureux avec Vaadin, mais il est assez difficile de créer vraiment personnalisé (votre site web branché moyenne avec Les applications frontend avec ces frameworks et vous aurez de retour pour la liberté expressive JS toolkits comme jQuery ont à offrir dans beaucoup moins de code.
Ensuite, il y a des hybrides (basés sur JSP), ce qui donne plus de liberté dans vos fichiers frontend (les développeurs frontend peuvent aussi le bidouiller sans connaître Java). Le code Java ne compile pas JS, mais propose des solutions prêtes à l'emploi que vous pouvez bricoler dans les JSP.
Roo Spring échafaude un frontend ensemble fournit/utilise le framework Dojo. JSF2 était/est joli aussi selon nos devs Java, mais quand nous regardons le site web, l'angoisse d'Oracle s'infiltre.
Dojo et YUI sont des frameworks JS assez étendus et matures, spécialisés pour les grands projets JS. Considérant que jQuery est plus agréable pour les petits projets JS avec une architecture plutôt plate. En ignorant les solutions Java, vous pouvez toujours revenir à YUI, Dojo ou même MooTools pour plus d'options d'architecture.
Vous pouvez également coller avec jQuery, mais imo. vous devez être heureusement fou et masochiste (alias frontend/développeur JS) pour maintenir des projets JS/Html/CSS à grande échelle.jQuery est une belle boîte à outils, mais en tant que framework, elle offre de maigres solutions architecturales/structurelles, vous devrez les concevoir vous-même en la mélangeant et en la mettant en correspondance avec d'autres petits toolkits comme RequireJS.
Mon meilleur conseil serait, construire votre application sans JS d'abord, en utilisant des actualisations de page et autres joyeusetés. Appliquez ensuite une couche JS et créez des services Ajax pour cette couche. De cette façon, vos vues et votre solution JS sont difficilement couplées et théoriquement, vous pouvez toujours changer de framework sans trop toucher vos JSP.