- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在构建一个 SpringBoot 应用程序,该应用程序从数据库加载国际化消息。(Followed this tutorial)
由此,我必须创建一个 ThymeleafConfiguration 类并设置一个 SpringTemplateEngine Bean。本教程仅给出了有关此配置的粗略想法(仅配置了消息源,但没有配置其他模板引擎配置),因此它破坏了我的 Controller 页面渲染( Controller 现在返回字符串而不是 View )。
我正在尝试配置 TemplateEngine 的其余部分(例如 TemplateResolver,我认为这是渲染不正确的原因),但是,我不知道如何正确执行它[我保留收到“模板解析期间发生错误(模板:“ServletContext 资源 [/templates/login.html]”)”消息]。
如何正确配置SpringTemplateEngine?
到目前为止我的配置:
@Configuration
public class ThymeleafConfiguration implements WebMvcConfigurer, ApplicationContextAware{
private ApplicationContext applicationContext;
@Autowired
private DatabaseMessageSource databaseMessageSource;
@Bean
public ViewResolver viewResolver() {
ThymeleafViewResolver resolver = new ThymeleafViewResolver();
resolver.setTemplateEngine(thymeleafTemplateEngine());
resolver.setCharacterEncoding("UTF-8");
return resolver;
}
private ITemplateResolver templateResolver() {
SpringResourceTemplateResolver resolver = new SpringResourceTemplateResolver();
resolver.setApplicationContext(applicationContext);
resolver.setPrefix("/templates/");
resolver.setSuffix(".html");
resolver.setTemplateMode(TemplateMode.HTML);
return resolver;
}
@Bean
public SpringTemplateEngine thymeleafTemplateEngine() {
SpringTemplateEngine engine = new SpringTemplateEngine();
engine.setTemplateResolver(templateResolver());
engine.setTemplateEngineMessageSource(databaseMessageSource);
return engine;
}
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
}
}
Controller 类:
@Controller
public class ApplicationController {
@RequestMapping("/home")
public String home() {
return "/home.html";
}
@RequestMapping("/core/index")
public String index() {
return "/core/index.html";
}
@RequestMapping("/login")
public String login() {
return "login";
}
最佳答案
问题在于
private ITemplateResolver templateResolver() {
SpringResourceTemplateResolver resolver = new SpringResourceTemplateResolver();
resolver.setApplicationContext(applicationContext);
resolver.setPrefix("/templates/"); // Here!!!
resolver.setSuffix(".html");
return resolver;
}
由于模板位于 src/main/resources 中,因此必须指向类路径,如下所示:
@Bean
public SpringResourceTemplateResolver templateResolver() {
SpringResourceTemplateResolver resolver = new SpringResourceTemplateResolver();
resolver.setApplicationContext(applicationContext);
resolver.setPrefix("classpath:/templates/"); // It works after adding 'classpath:'
resolver.setSuffix(".html");
return resolver;
}
此外,从接口(interface)到实现类有一些变化,但不会影响结果。
关于java - TemplateEngine 未在模板文件夹中查找文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51526162/
我正在构建一个 SpringBoot 应用程序,该应用程序从数据库加载国际化消息。(Followed this tutorial) 由此,我必须创建一个 ThymeleafConfiguration
我对 TemplateEngine 有疑问。 我有邮件模板解析器,它根据名称填充 thymeleaf 模板。当我不指定子目录时它效果很好。方法如下: private String getMailFro
我正在使用 spring 在 Java 中开发一个 Web 应用程序。 此应用程序包含 JavaScript 中的 Ajax 调用,该调用请求 html 代码,然后将其插入到 html 文档中。 为了
我使用 thymeleaf 模板引擎来构建对 SOAP 服务的请求。执行发送的类如下所示: import java.io.StringReader; import java.util.*; impor
这是我的代码,我用它来使用 java spring 和 thymeleaf 模板引擎发送 html 电子邮件。 @Service public class EmailServiceImpl imple
我面临这样一个场景,我需要处理一个 HTML 模板 (index.html),该模板是通过 Thymeleaf TemplateEngine 使用我的数据 POJO 从 ZIP 文件(通过 ZipIn
坦率地说,我正在寻找一个离线模板引擎,以使用 xpath 语法将来自 xml 数据库的信息应用到特殊的文本文件中。 我的文字不太好,举个例子更容易明确。所以我的db.xml好像: 和 f
我是一名优秀的程序员,十分优秀!