Введение в использование FreeMarker весной MVC
1. Обзор
ФриМаркер — движок шаблонов на основе Java от Фонда программного обеспечения Apache. Как и другие шаблонные двигатели, FreeMarker предназначен для поддержки HTML веб-страниц в приложениях по шаблону MVC. Этот учебник иллюстрирует, как настроить FreeMarker для использования в весенних MVC в качестве альтернативы JSP.
В статье не будут обсуждаться основы использования Spring MVC. Для углубленного взгляда на это, пожалуйста, обратитесь к эта статья . Кроме того, это не предназначено для детального анализа обширных возможностей FreeMarker. Для получения дополнительной информации об использовании FreeMarker и синтаксисе, пожалуйста, посетите его веб- .
2. Мейвен зависимостей
Поскольку это проект на основе Maven, мы сначала добавляем необходимые зависимости в пом.xml :
org.freemarker freemarker 2.3.23 org.springframework spring-context-support ${spring.version}
3. Конфигурации
Теперь давайте погрузимся в конфигурацию проекта. Это проект Spring на основе аннотации, поэтому мы не будем демонстрировать конфигурацию на основе XML.
3.1. Весенняя веб-конфигурация
Давайте создадим класс для настройки веб-компонентов. Для этого нам нужно аннотировать класс с @EnableWebMvc , @Configuration и @ComponentScan .
@EnableWebMvc @Configuration @ComponentScan({"com.baeldung.freemarker"}) public class SpringWebConfig extends WebMvcConfigurerAdapter { // All web configuration will go here. }
3.2. Настройка ViewResolver
Весенняя MVC Framework обеспечивает ПосмотретьРесольвер интерфейс, который отображает имена представления фактических представлений. Мы создадим экземпляр FreeMarkerViewРесольвер , который принадлежит весенне-вебмвк зависимость.
Этот объект должен быть настроен с требуемыми значениями, которые будут использоваться во время времени. Например, мы настройим разрешителе представления для использования FreeMarker для просмотра, заканчивающийся в .ftl :
@Bean public FreeMarkerViewResolver freemarkerViewResolver() { FreeMarkerViewResolver resolver = new FreeMarkerViewResolver(); resolver.setCache(true); resolver.setPrefix(""); resolver.setSuffix(".ftl"); return resolver; }
Кроме того, обратите внимание, как мы можем также контролировать режим кэширования здесь – это должно быть отключено только для отладки и развития.
3.3. Конфигурация шаблона FreeMarker
Далее мы завемем путь шаблона, который указывает, где шаблоны расположены в веб-контексте:
@Bean public FreeMarkerConfigurer freemarkerConfig() { FreeMarkerConfigurer freeMarkerConfigurer = new FreeMarkerConfigurer(); freeMarkerConfigurer.setTemplateLoaderPath("/WEB-INF/views/ftl/"); return freeMarkerConfigurer; }
3.4. Конфигурация весеннего контроллера
Теперь мы можем использовать весенний контроллер для обработать шаблон FreeMarker для отображения . Это просто обычный контроллер весны:
@RequestMapping(value = "/cars", method = RequestMethod.GET) public String init(@ModelAttribute("model") ModelMap model) { model.addAttribute("carList", carList); return "index"; }
FreeMarkerViewРесольвер и конфигурации пути, определенные ранее, будут заботиться о переводе имени представления индекс к правильному представлению FreeMarker.
4. Шаблон FreeMarker HTML
4.1. Создание простого просмотра шаблонов HTML
Настало время создать HTML-шаблон с freeMarker . В нашем примере мы добавили список автомобилей к модели. FreeMarker может получить доступ к этому списку и отобразить его, итерируя его содержимое.
При запросе на /Автомобили URI, Spring обработать шаблон с помощью модели, которая ему предоставляется. В нашем шаблоне #list директивная указывает на то, что FreeMarker должен цикл над carList объект из модели, используя автомобильный для обозначения текущего элемента и визуализации содержимого внутри этого блока.
Следующий код также включает в себя ФриМаркер выражения для обозначения атрибутов каждого элемента в carList ; или, например, для отображения текущего элемента автомобиля сделать собственности, мы используем выражение $«автомобиль.make» .
FreeMarker Spring MVC Hello World
<#list model["carList"] as car> Make Model ${car.make} ${car.model}
После укладки вывода с CSS, обработанный шаблон FreeMarker генерирует форму и список автомобилей:
5. Весенняя загрузка
Если мы используем Spring Boot, мы можем просто импортировать весна-загрузка-стартер-freemarker зависимость:
org.springframework.boot spring-boot-starter-freemarker 2.3.4.RELEASE
Затем мы просто должны добавить наши файлы шаблонов под src/main/resources/templates . Весенняя загрузка отвечает за другие конфигурации по умолчанию, такие как FreeMarkerConfigurer и FreeMarkerViewРесольвер .
6. Заключение
В этой статье мы обсудили, как интегрировать FreeMarker в весеннем приложении MVC. Возможности FreeMarker выходят далеко за рамки того, что мы продемонстрировали, поэтому, пожалуйста, посетите Сайт Apache FreeMarker для получения более подробной информации о его использовании.
Пример кода в этой статье доступен в проекте на Гитхуб .