jyy
2022-04-15 f57554f7da5e4d05b4b4bab99bf49ac9ca8c2038
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package com.matrix.system.common.tag;
 
import org.thymeleaf.dialect.AbstractProcessorDialect;
import org.thymeleaf.processor.IProcessor;
import org.thymeleaf.standard.StandardDialect;
import org.thymeleaf.standard.processor.StandardXmlNsTagProcessor;
import org.thymeleaf.templatemode.TemplateMode;
 
import java.util.HashSet;
import java.util.Set;
 
/**
 * thymeleaf自定义标签
 * 
 * @author jiangyouyao
 * @email 512061637@qq.com
 * @date 2019年1月12日
 */
public class MatrixProcessorDialect extends AbstractProcessorDialect {
 
    /**
     * 标签名
     */
    private static final String DIALECT_NAME = "Matrix Dialect";
 
    /**
     * 标签前缀
     */
    private static final String DIALECT_PREFIX = "matrix";
 
    public MatrixProcessorDialect() {
        // We will set this dialect the same "dialect processor" precedence as
        // the Standard Dialect, so that processor executions can interleave.
        super(DIALECT_NAME, DIALECT_PREFIX, StandardDialect.PROCESSOR_PRECEDENCE);
    }
 
    /**
     * 将btn按钮标签属性加入到本方言中
     * 
     * @author jiangyouyao
     * @email 512061637@qq.com
     * @date 2019年1月12日
     * @param dialectPrefix
     * @return
     */
    @Override
    public Set<IProcessor> getProcessors(final String dialectPrefix) {
        final Set<IProcessor> processors = new HashSet<IProcessor>();
        processors.add(new ButtonRoleAttributeTagProcessor(dialectPrefix));
        processors.add(new ButtonRoleFnTagProcessor(dialectPrefix));
        // This will remove the xmlns:matrix attributes we might add for IDE validation
        processors.add(new StandardXmlNsTagProcessor(TemplateMode.HTML, dialectPrefix));
        return processors;
    }
}