Шаблонный движок Rythm определяет пользовательский метод в коде Java

Я знаю, что есть возможность определить метод в шаблонах, как это:

@def myMethod(String parameter){
     before @parameter after 
}

и использовать это:

@myMethod("my object")

Это выведет: before my object afterМогу ли я определить myMethod в коде Java и использовать его в нескольких шаблонах?

1 ответ

Решение

Вам не нужно определять этот метод в коде Java. Вместо этого в вашем домашнем каталоге шаблона ритма создайте файл с именем __global.rythmи определите этот метод там, тогда весь ваш шаблон ритма автоматически подберет этот метод, потому что __global.rythm будет @include движком Rythm в каждом шаблоне автоматически. Ниже приведен настоящий глобальный файл ритма из моего проекта:

@import com.abc.model.*
@import org.rythmengine.spring.web.Csrf
@import org.rythmengine.RythmEngine
@import com.abc.AppConfig
@import com.abc.model.color.*;
@args Csrf csrf


@def String csrfParam() {
  return "__csrf=" + ((null == csrf) ? "nocsrf" : csrf.value);
}

@def RythmEngine rythm() {
  return __engine();
}

@def User me() {
  return User.me();
}

@def boolean loggedIn() {
  return User.me() != null;
}

@def String host() {
  return com.abc.AppConfig.host()
}
Другие вопросы по тегам