Skip to content

Commit 1a87f44

Browse files
committed
implement dialect
1 parent 8826100 commit 1a87f44

File tree

1 file changed

+18
-22
lines changed

1 file changed

+18
-22
lines changed
Lines changed: 18 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,37 @@
11
package org.mvnsearch.config;
22

3-
import org.thymeleaf.Arguments;
4-
import org.thymeleaf.dialect.AbstractDialect;
5-
import org.thymeleaf.dom.Element;
3+
import org.thymeleaf.context.ITemplateContext;
4+
import org.thymeleaf.dialect.AbstractProcessorDialect;
5+
import org.thymeleaf.dialect.IProcessorDialect;
6+
import org.thymeleaf.engine.AttributeName;
7+
import org.thymeleaf.model.IModel;
68
import org.thymeleaf.processor.IProcessor;
7-
import org.thymeleaf.processor.attr.AbstractUnescapedTextChildModifierAttrProcessor;
9+
import org.thymeleaf.processor.element.AbstractAttributeModelProcessor;
10+
import org.thymeleaf.processor.element.IElementModelStructureHandler;
11+
import org.thymeleaf.templatemode.TemplateMode;
812

9-
import java.util.HashSet;
13+
import java.util.Collections;
1014
import java.util.Set;
1115

1216
/**
1317
* 自定义 thymeleaf cms 标签
1418
*
1519
* @author linux_china
1620
*/
17-
public class CmsDialect extends AbstractDialect {
21+
public class CmsDialect extends AbstractProcessorDialect {
1822

19-
@Override
20-
public String getPrefix() {
21-
return "cms";
23+
public CmsDialect() {
24+
super("CMS", "cms", 1);
2225
}
2326

24-
@Override
25-
public Set<IProcessor> getProcessors() {
26-
final Set<IProcessor> processors = new HashSet<>();
27-
processors.add(new AbstractUnescapedTextChildModifierAttrProcessor("fragment") {
27+
public Set<IProcessor> getProcessors(String dialectPrefix) {
28+
IProcessor processor = new AbstractAttributeModelProcessor(TemplateMode.HTML, dialectPrefix, null, false, "fragment", false, 1, true) {
2829
@Override
29-
protected String getText(Arguments arguments, Element element, String attributeName) {
30-
String attributeValue = element.getAttributeValue(attributeName);
31-
return "Load from cms fragment: <h3>"+attributeValue + "</h3>";
32-
}
30+
protected void doProcess(ITemplateContext context, IModel model, AttributeName attributeName, String attributeValue, IElementModelStructureHandler structureHandler) {
3331

34-
@Override
35-
public int getPrecedence() {
36-
return 100;
3732
}
38-
});
39-
return processors;
33+
};
34+
return Collections.singleton(processor);
4035
}
36+
4137
}

0 commit comments

Comments
 (0)