Я ищу, какую технологию представления считали бы лучшим подходом для Spring MVC 3.0, который гибок, удобен в сопровождении и позволяет несколько технологий рендеринга, таких как HTML, PDF и т.д...
Мы надеемся разрабатывать наше следующее веб-приложение с помощью Spring MVC 3.0 и обосновались на, в спящем режиме для персистентности, но все еще пытаются решить, который является самой соответствующей технологией представления.
Мы потребуем поддержки отчетов PDF, но скорее всего записали бы их с помощью iText.
Есть ли какой-либо знаток archtypes, который установил бы рекомендуемое приложение вместе с технологией представления и персистентностью?
Пружинные образцы используют набор различных технологий от JSTL до Мозаик Apache, мы только когда-либо использовали JSP в прошлом, так как мы переместились в.NET в 2003 и пятимся к Java теперь.
На самом деле нет ничего плохого в использовании JSP, если вы используете последнюю версию. Вы, конечно, можете выбрать Freemarker, Velocity и другие крутые средства просмотра, но если всей вашей команде уже удобно работать с JSP, вам нужно учесть сроки выполнения проекта и все кривые обучения при освоении новой технологии. Если это имеет смысл, конечно, не помешает освоить еще одну новую вещь.
В моем случае я использую JSP с Sitemesh в качестве шаблона. Я использовал JSP/Strut Tiles combo довольно долго, но я нашел шаблон слишком навязчивым, Sitemesh кажется мне более гладким, потому что он не загромождает мои фактические JSP файлы некоторыми специфическими для Tile пользовательскими тегами.
Ниже приведены несколько.
Здесь есть документ, в котором говорится об интеграции с технологиями представления
В настоящее время мы используем Jsp 2.1 с spring webmvc 3.0x с apache tiles на google appengine, и это вполне удовлетворяет нашим целям.
Как насчет Apache Velocity
Это самый популярный шаблонизатор, о котором я знаю. Хотел бы получить больше предложений.
Обновление:
Freemarker - еще один
На вашем месте я бы пока придерживался jsps. Вы можете смешивать и сопоставлять свои представления в Spring, если вы решите, что для определенных потоков потребуется что-то еще. Например, вам нужно будет использовать разные типы представлений, если вы планируете использовать какую-либо обработку в стиле ajax.