Один из фреймворков, на который можно обратить внимание, - это Trindad / ADF.
Apache Trinidad - это платформа с открытым исходным кодом, работающая поверх JSF. Это чистая среда Java, которая позволяет вам определять веб-страницу с помощью декларативного XML. Он работает очень хорошо, поскольку вы тратите гораздо меньше времени на настройку общего макета страницы и просто объявляете, какую функциональность вы хотите.
Например:
<tr:commandButton text="Click me" actionListener="#{BackingBean.fireEvent}" />
Создаст кнопку с текстом «щелкни меня» и запустит функцию fireEvent (ActionEvent ae) на BackingBean.
ADF - это аналогичная структура, она включает в себя гораздо больше наворотов и намного лучше JS API, но это также недешево.