Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么TeleLafViewResolver不工作?_Java_Spring_Thymeleaf - Fatal编程技术网

Java 为什么TeleLafViewResolver不工作?

Java 为什么TeleLafViewResolver不工作?,java,spring,thymeleaf,Java,Spring,Thymeleaf,我想在一个项目中有两个模板解析器bean 第一个模板解析程序已在使用。它工作得很好 @Bean public ITemplateResolver feTemplateResolver(SpringResourceResourceResolver thymeleafResourceResolver) { String prefix = "classpath:fe20/is/templates/"; boolean cacheable = true;

我想在一个项目中有两个模板解析器bean

第一个模板解析程序已在使用。它工作得很好

    @Bean
    public ITemplateResolver feTemplateResolver(SpringResourceResourceResolver thymeleafResourceResolver) {
        String prefix = "classpath:fe20/is/templates/";
        boolean cacheable = true;

        if (environment.acceptsProfiles(LOCAL)) {
            String localResourcePath = environment.getRequiredProperty("FEB_HOME");

            prefix = "file:///" + localResourcePath + "/is/templates/";
            cacheable = false;
        }

        TemplateResolver resolver = new TemplateResolver();
        resolver.setResourceResolver(thymeleafResourceResolver);
        resolver.setPrefix(prefix);
        resolver.setSuffix(".html");
        resolver.setTemplateMode(StandardTemplateModeHandlers.LEGACYHTML5.getTemplateModeName());
        resolver.setCharacterEncoding("UTF-8");
        resolver.setCacheable(cacheable);
        resolver.setOrder(0);

        return resolver;
    }
我为thymeleaf添加了anthoer解析器

    @Bean
    public ServletContextTemplateResolver servletContextTemplateResolver() {
        ServletContextTemplateResolver servletContextTemplateResolver = new ServletContextTemplateResolver();
        servletContextTemplateResolver.setPrefix("classpath:resources/templates/");
        servletContextTemplateResolver.setSuffix(".html");
        servletContextTemplateResolver.setTemplateMode("HTML5");
        servletContextTemplateResolver.setOrder(1);

        return servletContextTemplateResolver;
    }

    @Bean
    public SpringTemplateEngine springTemplateEngine() {
        SpringTemplateEngine springTemplateEngine = new SpringTemplateEngine();
        springTemplateEngine.setTemplateResolver(servletContextTemplateResolver());

        return springTemplateEngine;
    }

    @Bean
    public ThymeleafViewResolver thymeleafViewResolver() {
        ThymeleafViewResolver thymeleafViewResolver = new ThymeleafViewResolver();
        thymeleafViewResolver.setTemplateEngine(springTemplateEngine());

        return thymeleafViewResolver;
    }
然后我运行这个应用程序,请求正确的url,然后我得到一个错误

HTTP状态500-请求处理失败;嵌套异常是 org.thymeleaf.exceptions.TemplateInputException:错误解析 模板统计信息/索引,模板可能不存在或可能不存在 可由任何已配置的模板解析程序访问

问题是,, 经过这么多的麻烦,, 我通过删除SpringTemplateEngin/ThymeleafViewResolver bean解决了这个问题。所以剩下的BEAN只是ServletContextTemplateResolver

为什么TeleLafViewResolver不工作


当我只使用ServletContextTemplateResolver BEAN时,它为什么会起作用呢?

我遇到了一个类似的问题,它导致css/js文件出错。我使用了您的解决方案,错误停止了,但我不知道如何呈现css/js。我放弃了WEB-INF,使用src/main/resources-templates和静态目录。我不能让它工作。您有什么想法吗?配置XML的方法很复杂,它比java配置简单,问题也少。