繁体   English   中英

Thymeleaf 使用 SpringMVC webapp 的视图解析器

[英]Thymeleaf View Resolver with SpringMVC webapp

提示:本站为国内最大中英文翻译问答网站,提供中英文对照查看,鼠标放在中文字句上可显示英文原文

如果可以使用ThymeleafViewResolver作为默认视图解析器会怎么样。

目前我的WebMvcConfig看起来像这样

@Configuration
@ComponentScan(basePackages="com.greatLearning.ticketAPI.controller")
public class WebMvcConfig implements WebMvcConfigurer {

    @Autowired
    ApplicationContext applicationContext;

//    @Override
//    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
//        configurer.enable();
//    }

    public InternalResourceViewResolver resolver() {
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/views/");
        resolver.setSuffix(".jsp");
        return resolver;
    }



    //Thymeleaf ViewResolver
    @Bean
    public SpringResourceTemplateResolver templateResolver(){
        // SpringResourceTemplateResolver automatically integrates with Spring's own
        // resource resolution infrastructure, which is highly recommended.
        SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();
        templateResolver.setApplicationContext(this.applicationContext);
        templateResolver.setPrefix("/WEB-INF/views/");
        templateResolver.setSuffix(".html");
        // HTML is the default value, added here for the sake of clarity.
        templateResolver.setTemplateMode(TemplateMode.HTML);
        // Template cache is true by default. Set to false if you want
        // templates to be automatically updated when modified.
        templateResolver.setCacheable(true);
        return templateResolver;
    }

    @Bean
    public SpringTemplateEngine templateEngine(){
        // SpringTemplateEngine automatically applies SpringStandardDialect and
        // enables Spring's own MessageSource message resolution mechanisms.
        SpringTemplateEngine templateEngine = new SpringTemplateEngine();
        templateEngine.setTemplateResolver(templateResolver());
        // Enabling the SpringEL compiler with Spring 4.2.4 or newer can
        // speed up execution in most scenarios, but might be incompatible
        // with specific cases when expressions in one template are reused
        // across different data types, so this flag is "false" by default
        // for safer backwards compatibility.
        templateEngine.setEnableSpringELCompiler(true);
        return templateEngine;
    }

    @Bean
    public ThymeleafViewResolver viewResolver(){
        ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
        viewResolver.setTemplateEngine(templateEngine());
        // NOTE 'order' and 'viewNames' are optional
        viewResolver.setOrder(1);
        viewResolver.setViewNames(new String[] {".html", ".xhtml"});
        return viewResolver;
    }

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry
                .addResourceHandler("/resources/**")
                .addResourceLocations("/resources/");
    }

}

对于*.jsp视图,它工作正常,但我想使用 Thymeleaf 来解析我的.html模板,因为我不想使用*.jsp

需要注意的一件事是,在我的 controller

TestController.java

@RequestMapping("/hello")
public String method1() {
    return "hello";
}

@RequestMapping("/hello2")
@ResponseBody
public String method2() {
    return "hello";  //This works fine
}

当我点击/hello api 这就是我得到的

API响应

我如何配置viewResolver以便 spring 选择ThymeleafViewResolver来解析html而不是jsp

问题解决了!!!!! 这是我在WebMvcConfig.java中调试库一个小时后所做的,我删除了public InternalResourceViewResolver resolver()方法,因为它是 sed 以配置 jsp。现在在ThymeleafViewResolver viewResolver()中删除这两个: viewResolver.setOrder(1); viewResolver.setViewNames(new String[] {".html", ".xhtml"}); 通过 debgging 和 [这篇文章](问题解决了!!!!!!这是我在WebMvcConfig.java中调试库一个小时后所做的,我删除了public InternalResourceViewResolver resolver()方法,因为它是 sed 来配置 jsp。现在在ThymeleafViewResolver viewResolver()中删除这两个: viewResolver.setOrder(1); viewResolver.setViewNames(new String[] {".html", ".xhtml"});通过 debgging 和这篇文章得到了帮助。至于为什么我如果有人有兴趣会回答。:)

问题未解决?试试搜索: Thymeleaf 使用 SpringMVC webapp 的视图解析器
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2023 STACKOOM.COM