Для компиляции в чистом веб-интерфейсе есть несколько опций, darioo , упомянутых Google Web Toolkit , хотя это все очень низкий уровень и, следовательно, сложнее вкатиться из коробки.Существует несколько каркасов GUI, основанных на GWT.
Из этих трех я слышал, что наши Java-разработчики больше всего довольны Vaadin , хотя довольно сложно создать действительно индивидуальный (ваш обычный фанк-сайт с никогдадо того, как мы увидели возможности ...) приложения с этими платформами для внешнего интерфейса, и вы будете стремиться к выразительной свободе, которую JS-наборы инструментов, такие как jQuery, могут предложить в гораздо меньшем количестве кода.
Затем существуют гибриды (на основе JSP), позволяющиебольше свободы в ваших файлах внешнего интерфейса (иначе разработчики внешнего интерфейса могут возиться с этим, не зная Java).Код Java не компилирует JS, но предлагает готовые решения, с которыми можно поработать в JSP.
Spring Roo создает целый интерфейс, предоставляющий / использующий инфраструктуру Dojo.JSF2 выглядел / выглядит также неплохо в соответствии с нашими Java-разработчиками, хотя при просмотре веб-сайта в Oracle просачивается угроза.
И Dojo, и YUI - довольно обширные и зрелые JS-фреймворки, специализирующиеся на больших JS-проектах.,В то время как jQuery лучше подходит для небольших JS-проектов с довольно плоской архитектурой.
Игнорируя решения на основе Java, вы всегда можете вернуться к YUI , Dojo или даже MooTools для большего количества вариантов архитектуры.
Вы также можете использовать jQuery, но imo.вам нужно быть счастливым безумцем и мазохистом (он же разработчик / JS-разработчик), чтобы поддерживать крупномасштабные проекты JS / Html / CSS.jQuery - это хороший набор инструментов, но в качестве фреймворка он предлагает скудные архитектурные / структурные решения, вам придется придумывать их самостоятельно, смешивая и сопоставляя его с другими небольшими наборами инструментов, такими как RequireJS .
Мой лучший совет: сначала создайте свое приложение без JS, используя обновления страниц и еще много чего.Затем примените уровень JS и постройте сервисы Ajax для этого уровня.Таким образом, ваши взгляды и JS-решение плохо связаны, и теоретически вы всегда можете переключать фреймворки, не слишком касаясь вашего JSP.