Spring Boot Freemarker 不会显示 html 页面

问题描述 投票:0回答:1

我有一个 Spring Boot 应用程序,需要使用 Freemarker 在浏览器中显示 HTML 页面。

我是 Freemarker 的新手,我什至很难显示一个简单的 HTML 页面,而且我不知道为什么它不会显示该页面。

我的模板文件位于 src/main/resources/templates 中,我的 freemarker 配置是:

 @Bean
  public FreeMarkerConfigurer freeMarkerConfigurer() throws IOException, TemplateException {
    FreeMarkerConfigurer freeMarkerConfigurer = new FreeMarkerConfigurer();
    freeMarkerConfigurer.setTemplateLoaderPath("classpath:/templates");
    freeMarkerConfigurer.setDefaultEncoding("UTF-8");
    freemarker.template.Configuration configuration = freeMarkerConfigurer.createConfiguration();
    configuration.setTagSyntax(freemarker.template.Configuration.SQUARE_BRACKET_TAG_SYNTAX);
    configuration.setRecognizeStandardFileExtensions(true);
    configuration.setOutputFormat(HTMLOutputFormat.INSTANCE);
    freeMarkerConfigurer.setConfiguration(configuration);

    return freeMarkerConfigurer;
  }

  @Bean
  public ViewResolver viewResolver() {
    FreeMarkerViewResolver viewResolver = new FreeMarkerViewResolver();
    viewResolver.setCache(false);
    viewResolver.setPrefix("");
    viewResolver.setSuffix(".ftlh");
    viewResolver.setContentType("text/html; charset=utf-8");
    return viewResolver;
  }

我的控制器是:

@RestController
public class HelloWorldController {

    @GetMapping("/hello-world")
    public String helloWorld(@ModelAttribute("model") ModelMap model) {
        String message = "Hello World!";
        model.addAttribute("message", message);
        return "hello";
    }
}

我正在使用 ftlh 文件扩展名作为模板,我的 hello.ftlh 文件如下所示:

[#import "_components.ftlh" as comp]

[@comp.page title="Hello"]
    [@comp.hello]${message}[/@comp.hello]
[/@comp.page]
spring-boot freemarker
1个回答
0
投票

@RestController 替换为 @Controller@Controller 用于渲染视图并允许返回解析为模板的视图名称

© www.soinside.com 2019 - 2024. All rights reserved.