Рубрики
Без рубрики

Введение в использование FreeMarker весной MVC

FreeMarker — это движок шаблонов на основе Java от Apache Software Foundation. Этот учебник иллюстрирует, как настроить FreeMarker для использования в весеннем MVC.

Автор оригинала: baeldung.

Введение в использование 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» .


Add Car
Make :
Model:

<#list model["carList"] as car>
Make Model
${car.make} ${car.model}

После укладки вывода с CSS, обработанный шаблон FreeMarker генерирует форму и список автомобилей:

browser_localhost-300x235

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 для получения более подробной информации о его использовании.

Пример кода в этой статье доступен в проекте на Гитхуб .