Невозможно использовать шаблонизатор Rythm с сервлетом 3.0

Я пытаюсь использовать движок шаблонов Rythm с сервлетом 3.0 на tomcat7.
Я хочу сделать шаблон из WebContent каталог для Rythm двигатель. Но это не обнаружение шаблона.

В сервлете init() Метод, который я инициализировал двигатель Rthym как

public void init(ServletConfig config) throws ServletException {
        Map <String, Object> context = new HashMap <String, Object> ();
        //String filePath = new File("").getAbsolutePath();
        //filePath.concat("WebContent");
        context.put("home.template", "WebContent");
        Rythm.init(context);
    }

Затем я попытался сделать мой NewFile.html с Rythm.render в doGet метод как

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        Map <String, Object> args = new HashMap <String, Object> ();
        args.put("a", "World");
        PrintWriter out = response.getWriter();
        out.println(Rythm.render("NewFile.html", args));
    }

Но он показывает только "NewFile.html" в браузере (не содержимое NewFile.html, а только строку "NewFile.html"

2 ответа

Решение

У меня была похожая проблема с Rythm, и в моем случае это помогло написать каталог перед именем файла:

Rythm.render("templates/" + templateFileName, parameters);

Настройка home.template Переменная не работает для меня тоже.

Rythm загружает файлы шаблонов с помощью менеджера ресурсов. Реализация менеджера ресурсов по умолчанию делегирует загрузку ресурса Thread.currentThread.getContextClassLoader(), который не может загружать какие-либо ресурсы под webapp папка. См. Разрешение корня веб-приложения из getResource.

Если вы хотите загрузить шаблоны под webapp папку, вам нужно создать свой собственный менеджер ресурсов и делегировать ServletContext загрузить шаблон.

К счастью, вам не нужно этого делать. Просто поместите ваши шаблоны под resources папка и тогда она будет просто работать как положено. Вот простой проект доказал это:

Исходный код проекта можно найти по адресу https://github.com/greenlaw110/rythm-gh-issue-241

Другие вопросы по тегам