- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在为我的 Spring Boot 应用程序 ServletContextTemplateResolver 和 ClassLoaderTemplateResolver 使用两个模板解析器。
我正在将 ServletContextTemplateResolver 用于我的网页的/WEB-INF/* html 模板。另一方面,我将使用 ClassLoaderTemplateResolver 作为我的/mail/html 模板。代码如下:
@Bean(name ="templateResolver")
public ServletContextTemplateResolver getTemplateResolver() {
ServletContextTemplateResolver templateResolver = new
ServletContextTemplateResolver();
templateResolver.setPrefix("/WEB-INF/templates/");
templateResolver.setSuffix(".html");
templateResolver.setTemplateMode("XHTML");
templateResolver.setOrder(Integer.valueOf(1));
return templateResolver;
}
@Bean(name ="emailTemplateResolver")
public ClassLoaderTemplateResolver getEmailTemplateResolver() {
ClassLoaderTemplateResolver templateResolver = new
ClassLoaderTemplateResolver();
templateResolver.setOrder(Integer.valueOf(2));
templateResolver.setPrefix("/mail/");
templateResolver.setSuffix(".html");
return templateResolver;
}
调用邮件模板时出现以下错误:
Resource resolution by ServletContext with org.thymeleaf.resourceresolver.ServletContextResourceResolver can only be performed when context implements org.thymeleaf.context.IWebContext [current context: org.thymeleaf.context.Context]
如何强制它对/mail/* 模板使用 ClassLoaderTemplateResolver?
最佳答案
您可能正在渲染一个 html 文件,并希望将生成的 html 文件保存在一个字符串变量中,稍后您将使用它通过 html 到 pdf 转换来发送电子邮件。因此,以下代码将在 Spring boot 中为您提供帮助:
@Controller
public class jataController {
@Autowired
private TemplateEngine templateEngine;
@GetMapping(value = "/manual-thym")
@ResponseBody
public void justSample() {
Context context = new Context();
String filename = "templates/view/generated-ticket.html";
String html = renderHtml(filename, context);
System.out.println("template\n" + html);
}
private String renderHtml(String filename, Context context) {
ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver();
templateResolver.setSuffix(".html");
templateResolver.setTemplateMode(TemplateMode.HTML);
templateResolver.setCacheable(false);
templateResolver.setOrder(1);
templateResolver.setCharacterEncoding("UTF-8");
templateEngine.setTemplateResolver(templateResolver);
String html = templateEngine.process(filename, context);
return html;
}
}
关于java - 如何强制我的模板解析器对/mail/* 模板使用 ClassLoaderTemplateResolver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43994172/
我正在尝试配置我的项目。我有两种 tempalteResolver 变体。如果我使用这个: @Bean public SpringResourceTemplateResolver templ
我正在为我的 Spring Boot 应用程序 ServletContextTemplateResolver 和 ClassLoaderTemplateResolver 使用两个模板解析器。 我正在将
我们目前正在将 Thymeleaf 用于 Spring MVC 网站。最近,我们决定用它来处理丰富的 HTML 电子邮件模板。我按照这里的例子:http://www.thymeleaf.org/doc
我是一名优秀的程序员,十分优秀!