1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/jfinal-enjoy

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 5.6 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 24.11.2024 19:58 0a59498

Enjoy

Enjoy — это легковесный шаблонизатор на основе языка Java. Он весит всего 228 КБ и не зависит ни от каких сторонних библиотек. Его минималистичный дизайн включает всего семь основных команд: if, for, switch, set, define, include и render, что делает его изучение максимально простым. Enjoy использует уникальные алгоритмы DKFF (Dynamic Key Feature Forward) для лексического анализа и DLRD (Double Layer Recursive Descent) для синтаксического анализа, избегая необходимости в javacc, antlr или jflex генераторах кода.

Координаторы Maven

<dependency>
    <groupId>com.jfinal</groupId>
    <artifactId>enjoy</artifactId>
    <version>5.2.2</version>
</dependency>

Основные характеристики Enjoy

  • Устранение множества сложных концепций традиционных шаблонизаторов, оставляя только семь основных команд для простоты изучения.
  • Уникальные алгоритмы DKFF для лексического анализа и DLRD для синтаксического анализа, позволяющие избежать использования javacc, antlr и других генераторов кода.
  • Интеграция с Java для удобства взаимодействия в шаблонах.
  • Близость к интуитивному использованию Java, специально разработанная для разработчиков на Java.
  • Мощные функции при простоте, охватывающие основные возможности Freemarker и Velocity.
  • Сильная расширяемость с поддержкой различных методов расширения и уникальной возможностью расширения на уровне команд.
  • Возврат к сути рендеринга данных View в шаблонизаторах, использование командного подхода для избегания сложной логики в слое представления.
  • Небольшой размер — всего 228 КБ, без зависимости от сторонних библиотек.

Простой пример:

  1. Интеграция со Spring boot
@Configuration
public class SpringBootConfig {

    @Bean(name = "jfinalViewResolver")
    public JFinalViewResolver getJFinalViewResolver() {

        // Создание объекта ViewResolver для интеграции со Spring boot
        JFinalViewResolver jfr = new JFinalViewResolver();

        // Конфигурация для Spring boot
        jfr.setSuffix(".html");
        jfr.setContentType("text/html;charset=UTF-8");
        jfr.setOrder(0);

        // Получение объекта engine для конфигурации Enjoy шаблонизатора, аналогично предыдущей главе
        Engine engine  = JFinalViewResolver.engine;

        // Настройка режима разработки для включения горячей перезагрузки конфигурации
        engine.setDevMode(true);

        // Использование ClassPathSourceFactory для загрузки шаблонов из class path и jar-файлов
        engine.setToClassPathSourceFactory();

        // При использовании ClassPathSourceFactory необходимо использовать setBaseTemplatePath
        // вместо jfr.setPrefix("/view/")
        engine.setBaseTemplatePath("/view/");

        // Добавление шаблонных функций
        engine.addSharedFunction("/common/_layout.html");
        engine.addSharedFunction("/common/_paginate.html");

        // Дополнительная конфигурация аналогична предыдущей главе
        // engine.addDirective(...)
        // engine.addSharedMethod(...);

        return jfr;
    }
}
  1. Интеграция с Spring MVC
<bean id="viewResolver" class="com.jfinal.template.ext.spring.JFinalViewResolver">
	<!-- Режим горячей перезагрузки шаблонов -->
	<property name="devMode" value="true" />
	<!-- Конфигурация shared function, разделяется запятыми для нескольких файлов -->
	<property name="sharedFunction" value="/view/_layout.html, /view/_paginate.html" />

	<!-- Поддержка доступа к session через #(session.value) -->
	<property name="sessionInView" value="true" />
	<property name="prefix" value="/view/" />
	<property name="suffix" value=".html" />
	<property name="order" value="1" />
	<property name="contentType" value="text/html; charset=utf-8" />
</bean>
  1. Подробные инструкции см. в официальной документации

Read me находится в процессе дополнения. Подробные инструкции доступны на официальном сайте: https://www.jfinal.com/doc/6-1.

Официальная документация JFinal Enjoy: https://www.jfinal.com/doc/6-1

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/jfinal-enjoy.git
git@api.gitlife.ru:oschina-mirror/jfinal-enjoy.git
oschina-mirror
jfinal-enjoy
jfinal-enjoy
master