在上几篇文章中,讲解了thymeleaf的方言定义以及处理器等,接下来通过一个具体的使用来深度了解下thymeleaf方言和处理器的具体使用
实例1
table表格中某一列显示内容为是否启用,具体的值为0和1.如果是0,该单元格是红色,否则为绿色。
定义方言
首先,我们需要定义一个thymeleaf的方言。具体如下:
public class WorkFocusDialect extends AbstractProcessorDialect {
private final IExpressionObjectFactory EXPRESSION_OBJECTS_FACTORY = new WorkFocusExpressionFactory();
private static final String DIALECT_NAME = "workfocus";
private static final String PREFIX = "wlf";
public static final int PROCESSOR_PRECEDENCE = 1000;
public WorkFocusDialect() {
// We will set this dialect the same "dialect processor" precedence as
// the Standard Dialect, so that processor executions can interleave.
super(DIALECT_NAME, PREFIX, PROCESSOR_PRECEDENCE);
}
@Override
public Set<IProcessor> getProcessors(final String dialectPrefix) {
final Set<IProcessor> processors = new HashSet<IProcessor>();
... 在这里增加自定义的处理器
processors.add(new SampleAttributeTagProcessor(dialectPrefix));
processors.add(new SampleElementTagProcessor(dialectPrefix));
return processors;
}
}
定义处理器
在上篇文章中,我们了解到如果需要自定义标签的话,其实本质上是需要定义thymeleaf处理器。具体的实现如下
public class SampleAttributeTagProcessor extends AbstractAttributeTagProcessor {
private static final String ATTR_NAME = "sample1";
private static final int PRECEDENCE = 10000;