Как восстановить выход тимелист с помощью Spring Roo после редактирования файлов .ftl? - PullRequest
1 голос
/ 26 февраля 2020

В справочной документации Spring Roo мы видим, что

web mvc templates

setup Включает шаблоны создания представлений для текущего проекта. Позволит разработчикам настраивать генерацию представления, изменяя шаблоны из [PROJECT-ROOT] /. Roo / templates /…

Как только я изменю шаблоны в .roo / templates /, как мне получить эти изменения отражаются на встроенных html файлах, которые возникают в результате выполнения команды

web mvc controller --entity ~.model.MyObject --responseType THYMELEAF

? (РЕДАКТИРОВАТЬ 4 - я не могу просто запустить вышеупомянутое, поскольку руо говорит ... «уже существует»)

Я попытался

mvn clean package

и перезапустил

mvn spring-boot:run

но изменения, внесенные в файлы .ftl после того, как они сгенерированы, никогда не будут помещены в вывод, найденный в src \ main \ resources \ templates. Я предполагаю, что есть команда Roo Console для выполнения, но в справочной документации, кажется, отсутствует полное объяснение этого процесса.

EDIT

Я также попытался добавить свойство

spring.thymeleaf.cache=false

но это, похоже, не помогло.

EDIT 2

Я использую Roo CLI, а не STS.

Я использую файл .roo, и команды для этой части процесса выполняются в следующем порядке:

web mvc setup
web mvc view setup --type THYMELEAF
web mvc templates setup --type THYMELEAF

Я проверяю, может ли здесь быть неправильный порядок. (Обновление - нет, это правильный порядок. Настройка установки создает выходные данные в каталоге sr c, установка шаблонов помещает файлы .ftl в каталог .roo. Просто нужно знать, как вызвать обновление для. html после редактирования .ftl).

EDIT 3

Я заметил в документации freemarker , которую использует thymeleaf, что класс config отвечает за определение загрузки шаблона функциональность. Когда я посмотрел в своем сгенерированном коде, я заметил, что файлы .aj для WebMvcConfiguration. java не были вставлены. Я переместил свою команду .roo script push-in --all в конец моего файла, и это позаботилось об ошибке. AJ файлы. Это, кажется, не включает метод setDirectoryForTemplateLoading или что-то подобное. Это создает следующее, которое я планирую исследовать далее.

public TemplateEngine getTemplateEngine() {
    return templateEngine;
}

@Bean
public ThymeleafViewResolver javascriptThymeleafViewResolver() {
    ThymeleafViewResolver resolver = new ThymeleafViewResolver();
    resolver.setTemplateEngine(getTemplateEngine());
    resolver.setCharacterEncoding("UTF-8");
    resolver.setContentType("application/javascript");
    resolver.setViewNames(new String[] { "*.js" });
    resolver.setCache(getThymeleafProperties().isCache());
    return resolver;
}

После того, как они были добавлены в конфигурацию, я попытался внести некоторые изменения в файлы .ftl, и оба перезапустили приложение весенней загрузки и перекомпилировали его. Ни один из них не привел к обработке .ftl для обновления сгенерированного. html.

Все еще нет разрешения на данный момент.

РЕДАКТИРОВАТЬ 5 (РЕДАКТИРОВАТЬ 4 выше встроенного)

Теперь поиграемся с консолью роо, чтобы понять, смогу ли я это выяснить Я узнал, что web mvc templates setup --type THYMELEAF перезаписывает любые изменения, внесенные в файлы .ftl.

...