Spring boot ThymileAF-检查模板是否存在

Spring boot ThymileAF-检查模板是否存在,spring-boot,thymeleaf,Spring Boot,Thymeleaf,我正在寻找一种方法,在使用Thymeleaf和Spring将模板返回到视图之前检查模板是否存在 在我的控制器中,我试图执行以下操作: String finalTemplate = template.getPrefix() + "/" + templateName; try { return finalTemplate; } catch(TemplateInputException e) { logger.debug

我正在寻找一种方法,在使用Thymeleaf和Spring将模板返回到视图之前检查模板是否存在

在我的控制器中,我试图执行以下操作:

String finalTemplate = template.getPrefix() + "/" + templateName;

        try {
            return finalTemplate;
        } catch(TemplateInputException e) {
            logger.debug("Sono qua");
            return templateName;
        }

但是异常不是catch…

这里处理异常的方式对于模板异常不起作用

在github部分,检查以下关于此问题的线程


StringTemplateResource
对于thymeleaf 3.0,上面的评论似乎在任何情况下都返回true。下面是为包含类路径的模板执行此操作的方法:

公共静态字符串baseDir=“templates”;
/**
*检查子文件夹模板中是否存在模板。
*
*@param templateName basedir下面模板的相对名称。
*@如果存在,则返回true,否则返回false
*/
公共静态布尔templateExists(最终字符串templateName)
{
最终类装入器模板资源iTemplateResource=
新的ClassLoaderTemplateResource(baseDir+“/”+templateName,“UTF8”);
return iTemplateResource.exists();
}
测试用例:

@测试
公共无效测试不存在()
{
assertFalse(templateExists(“foo”));
}
@试验
public void testExisting()
{
assertTrue(templateExists(“foo.txt”);
}

假设存在类路径资源
templates/foo.txt

您能够解决此问题吗?我有一个场景,如果模板存在,那么它将加载该模板(如果没有),故障备份到默认模板最终解决了问题,
ITemplateResource ITemplateResource=new StringTemplateResource(“页面/打印订单/项目/自定义/”+productcategoryuid+“-print order项目表单”);如果(iTemplateResource.exists()){}
噢,谢谢!我会尽快尝试@Amare,如果是html模板并且是文件夹,则返回true,但如果仅是有效的模板文件,则返回true。