我在我的spring-boot项目中添加了一些定制的thymeleaf方言和处理器,包括:org.store.custom.thymeleaf.dialect和org.store.custom.thymeleaf.processor。在我的html页面中,我以这种方式配置命名空间:
<html
xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3"
xmlns:form="http://form"
xmlns:field="http://field">
它没有用。什么应该是xmlns:form和xmlns:field的正确值,以使基于它们的标记有效?
更新
百里香的配置是这样的:
@Configuration
public class Thymeleaf {
@Bean
public SpringTemplateEngine templateEngine() {
SpringTemplateEngine engine = new SpringTemplateEngine();
final Set<IDialect> dialects = new HashSet<IDialect>();
dialects.add( new SpringSecurityDialect() );
dialects.add( new FormDialect() );
dialects.add( new FieldDialect() );
engine.setDialects( dialects );
return engine;
}
}
答案 0 :(得分:0)
毕竟,问题不在于命名空间,而在于我的百万美元配置。当我将类Thymeleaf.java更改为:
时,它可以工作@Configuration
public class Thymeleaf {
@Autowired
private FormDialect formDialect;
@Autowired
private FieldDialect fieldDialect;
@Bean
public SpringTemplateEngine templateEngine() {
SpringTemplateEngine engine = new SpringTemplateEngine();
final Set<IDialect> dialects = new HashSet<IDialect>();
dialects.add( new SpringSecurityDialect() );
dialects.add( formDialect );
dialects.add( fieldDialect );
engine.setDialects( dialects );
return engine;
}
@Bean
public FormDialect formDialect() {
return new FormDialect();
}
@Bean
public FieldDialect fieldDialect() {
return new FieldDialect();
}
}