我正在寻求解析驻留在不同文件夹中的Thymelaf模板。例如,我想将电子邮件模板放置在名为WEB-INF/thymeleaf/email
的文件夹和上一级的网页模板中。对Thymeleaf 3模板解析器使用多个文件夹时FileNotFoundException
这适用于电子邮件模板,但请求下WEB-INF/thymeleaf
结果的任何模板在FileNotFoundException
:
java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/thymeleaf/email/WebFile.html] at org.springframework.web.context.support.ServletContextResource.getInputStream(ServletContextResource.java:141) at org.thymeleaf.spring4.templateresource.SpringResourceTemplateResource.reader(SpringResourceTemplateResource.java:103)
这里是我的尝试:
<bean id="viewResolver" class="org.thymeleaf.spring4.view.ThymeleafViewResolver">
<property name="order" value="1" />
<property name="characterEncoding" value="UTF-8" />
<property name="templateEngine" ref="templateEngine" />
</bean>
<bean id="templateEngine" class="org.thymeleaf.spring4.SpringTemplateEngine">
<property name="templateResolvers">
<set>
<ref bean="emailTemplateResolver" />
<ref bean="webTemplateResolver" />
</set>
</property>
<property name="additionalDialects">
<set>
<bean class="org.thymeleaf.extras.springsecurity3.dialect.SpringSecurityDialect"/>
</set>
</property>
</bean>
<bean id="emailTemplateResolver" class="org.thymeleaf.spring4.templateresolver.SpringResourceTemplateResolver">
<property name="prefix" value="/WEB-INF/thymeleaf/email/" />
<property name="suffix" value=".html" />
<property name="templateMode" value="HTML" />
<property name="characterEncoding" value="UTF-8" />
<property name="cacheable" value="false"/>
<property name="order" value="2" />
</bean>
<bean id="webTemplateResolver" class="org.thymeleaf.spring4.templateresolver.SpringResourceTemplateResolver">
<property name="prefix" value="/WEB-INF/thymeleaf/" />
<property name="suffix" value=".html" />
<property name="templateMode" value="HTML" />
<property name="characterEncoding" value="UTF-8" />
<property name="cacheable" value="false" />
<property name="order" value="3" />
</bean>
注意:我使用新的Thymeleaf 3.0.0.BETA01来利用更宽松的解析功能。我的堆栈跟踪反映了新的库,所以我知道它正确部署。我正在使用基于migration guide的SpringResourceTemplateResolver
。
即使一个解决方法,将不胜感激(除了将所有的文件放在一个文件夹)。
你得到这个答案?我现在正在遇到一模一样的问题。我甚至试图把文件放在同一个文件夹中。仍然得到FileNotFoundException。 – Sonal
有人可以解释downvote? – bphilipnyc