X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fthymeleaf%2FImportVariablesAttrProcessor.java;h=e063a0c9f8d3bc4a5c267213fb75d640eef05912;hb=178ade5cbed52e5b0cac45610371c06e0bc30cd4;hp=e864ab17bdb00e6628d7904ccf2add16ba4eaa68;hpb=9df75bd83c2fd73df2aefdbb796424caccac6d4d;p=juplo-dialect diff --git a/src/main/java/de/juplo/thymeleaf/ImportVariablesAttrProcessor.java b/src/main/java/de/juplo/thymeleaf/ImportVariablesAttrProcessor.java index e864ab1..e063a0c 100644 --- a/src/main/java/de/juplo/thymeleaf/ImportVariablesAttrProcessor.java +++ b/src/main/java/de/juplo/thymeleaf/ImportVariablesAttrProcessor.java @@ -15,16 +15,13 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.thymeleaf.Arguments; -import org.thymeleaf.Configuration; -import org.thymeleaf.TemplateProcessingParameters; import org.thymeleaf.context.IContext; -import org.thymeleaf.context.VariablesMap; -import org.thymeleaf.dom.Element; -import org.thymeleaf.dom.Node; -import org.thymeleaf.processor.ProcessorResult; -import org.thymeleaf.processor.attr.AbstractAttrProcessor; -import org.thymeleaf.resourceresolver.IResourceResolver; +import org.thymeleaf.exceptions.TemplateProcessingException; +import org.thymeleaf.processor.element.AbstractAttributeModelProcessor; +import org.thymeleaf.standard.expression.IStandardExpression; +import org.thymeleaf.standard.expression.IStandardExpressionParser; +import org.thymeleaf.standard.expression.StandardExpressions; +import org.thymeleaf.templatemode.TemplateMode; import org.thymeleaf.templateresolver.ITemplateResolver; import org.thymeleaf.templateresolver.TemplateResolution; @@ -35,7 +32,7 @@ import org.thymeleaf.templateresolver.TemplateResolution; * variables. * @author Kai Moritz */ -public class ImportVariablesAttrProcessor extends AbstractAttrProcessor +public class ImportVariablesAttrProcessor extends AbstractAttributeModelProcessor { private static final Logger LOG = LoggerFactory.getLogger(ImportVariablesAttrProcessor.class); @@ -51,9 +48,22 @@ public class ImportVariablesAttrProcessor extends AbstractAttrProcessor public static final int ATTR_PRECEDENCE = 200; - public ImportVariablesAttrProcessor() + public ImportVariablesAttrProcessor( + final String prefix, + final String attribute, + final String substitute + ) { - super("variables"); + super( + TemplateMode.HTML, + prefix, + null, + false, + attribute, + true, + ATTR_PRECEDENCE, + false + ); } @@ -65,7 +75,25 @@ public class ImportVariablesAttrProcessor extends AbstractAttrProcessor ) { Configuration config = arguments.getConfiguration(); + + Configuration configuration = arguments.getConfiguration(); + String parameter = element.getAttributeValue(name); + try + { + IStandardExpressionParser parser = + StandardExpressions.getExpressionParser(configuration); + IStandardExpression expression = + parser.parseExpression(configuration, arguments, parameter); + parameter = (String)expression.execute(configuration, arguments); + } + catch (TemplateProcessingException e) { } + + if (parameter != null && !parameter.trim().isEmpty()) + { + LOG.info("ignoring empty parameter"); + return ProcessorResult.OK; + } Iterator> it = null;