出于某种原因,我目前的春季启动项目没有评估我的定制百里香标签。我在我的Application类中注册了方言:
@Bean
public FormDialect formDialect() {
return new FormDialect();
}
方言以这种方式引用处理器:
public class FormDialect extends AbstractDialect {
public String getPrefix() {
return null;
}
public Set<IProcessor> getProcessors() {
final Set<IProcessor> processors = new HashSet<IProcessor>();
processors.add(new com.loja.thymeleaf.processor.form.FormProcessor());
return processors;
}
}
但是当我用这样的代码打开一个页面时:
<Form ...>
<Fieldset type="Input" class="form-group">
<Label></Label>
<Input class="form-control"></Input>
</Fieldset>
<Fieldset type="Select" class="form-group">
<Label></Label>
<Select class="form-control"></Select>
</Fieldset>
<Fieldset type="Textarea" class="form-group">
<Label></Label>
<Textarea class="form-control"></Textarea>
</Fieldset>
</Form>
处理器未被评估为最终代码。任何人都可以看到这里有什么问题?这是在这个项目中工作,突然(经过一些改变,我不记得是什么)停止工作。
答案 0 :(得分:1)
比较我的工作代码,您可能会遗漏@Configuration
注释。
@Configuration
public class YourThymeleafConfig {
@Bean
public FormDialect formDialect() {
return new FormDialect();
}
}
你应该定义前缀
public class FormDialect extends AbstractDialect {
@Override
public String getPrefix() {
return "some_prefix";
}
@Override
public Set<IProcessor> getProcessors() {
final Set<IProcessor> processors = new HashSet<IProcessor>();
processors.add(new com.loja.thymeleaf.processor.form.FormProcessor());
return processors;
}
}
模板
<html xmlns:th="http://www.thymeleaf.org"
xmlns:some_prefix="http://xxx">
<!-- ... -->
<Form some_prefix:your_diarect_attribute="...">
<!-- ... -->
</Form>
</html>
your_diarect_attribute
与org.thymeleaf.processor.AttributeNameProcessorMatcher#attributeName
AttributeNameProcessorMatcher
已延长com.loja.thymeleaf.processor.form.FormProcessor