Каким должен быть путь к шаблону при использовании Spring Boot и фильтра Sitemesh?

Я пытаюсь использовать шаблон Sitemesh (3) с Spring Boot (4+) с помощью конфигурации на основе аннотаций Java.

Когда я нажимаю URL контроллера, вызывается метод обработчика.
Активирован фильтр Sitemesh (это доказывает отладка).

Однако я получаю 404, который я считаю, потому что с конфигурацией у меня нет шаблона Freemarker (где-то неправильный путь).

Код следует, любые предложения, что я делаю неправильно было бы здорово!

Фильтр:
@web-фильтр
public class SitemeshFilter расширяет ConfigurableSiteMeshFilter {

    @Override
    protected void applyCustomConfiguration(SiteMeshFilterBuilder builder) {
        System.out.println("in sitemesh filter");
        builder.addDecoratorPath("/*", "templates/main.ftl")
            .setMimeTypes("text/html")
            .addExcludedPath("/javadoc/*")
            .addExcludedPath("/brochures/*");
     }

Контроллер:

@Controller
public class UserController {

@Autowired
MemberService memberService;

@RequestMapping(value="member/{id}")
public ModelAndView viewMember(@PathVariable("id") int memberId, ModelAndView mv) {
    mv.setViewName("member");
    ClubMember member = memberService.getClubMember(memberId);
    mv.addObject("member", member);
    return mv;
  }
}

Основной класс:

@SpringBootApplication
@ServletComponentScan
@EnableAutoConfiguration(exclude = {ErrorMvcAutoConfiguration.class})
public class ClubManagementApplication {

    public static void main(String[] args) {
        SpringApplication.run(ClubManagementApplication.class, args);
    }
 }

Приложение.свойства:
весна.mvc.вид.prefix= / представления/

Мои шаблоны живут в :
src / главная/ресурсы / шаблоны
src / главная/ресурсы/просмотры

1 ответ

  1. В случае, если кто-то еще имеет ту же проблему:

    шаблоны оказались в ресурсах / шаблонах

    sitemeshfilter:

            @Override
        protected void applyCustomConfiguration(SiteMeshFilterBuilder builder) {
            builder.addDecoratorPath("/*", "/main.ftl")
                .setMimeTypes("text/html", "application/xhtml+xml",                       "application/vnd.wap.xhtml+xml");
         }
    

    Не отмечайте ничего перед ‘ / main.ftl’