xiaoyong931011
2022-07-08 e7f9932f6d5bb67dac0de33e9d52d439d9a1a6bf
src/main/java/com/xcong/farmer/cms/core/node/AttrNode.java
@@ -2,10 +2,12 @@
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.xcong.farmer.cms.core.handler.DataParserHandler;
import com.xcong.farmer.cms.core.tag.TagsEnum;
import com.xcong.farmer.cms.core.template.Configuration;
import com.xcong.farmer.cms.core.template.TemplateConfiguration;
import groovy.lang.Binding;
import groovy.lang.GroovyShell;
import org.apache.commons.text.StringSubstitutor;
@@ -52,22 +54,6 @@
        this.parserData = parserData;
    }
    public static void main(String[] args) {
//        String data = "{id=[1,2,3], page=1, limit=5, field=art}";
//        Articles articles = new AttrNode().parserTag(data, Articles.class);
//        String value = "{id=${col.id}, page=1, limit=5, field=art}";
//        String pattern = "(?<=\\$\\{)[\\s\\S]*?(?=\\})";
//        Matcher matcher = Pattern.compile(pattern).matcher(value);
//        while (matcher.find()) {
//            String group = matcher.group();
//            System.out.println(1);
//        }
        System.out.println(1);
    }
    private boolean isNeedEmpty() {
        Elements children = this.element.children();
        if (CollUtil.isNotEmpty(children)) {
@@ -86,7 +72,32 @@
        return false;
    }
    public void staticPath() {
        // 设置img的链接访问
        if ("img".equals(this.element.tagName())) {
            String src = this.element.attr("src");
            if (StrUtil.isNotBlank(STATIC_URL)) {
                this.element.attr("src", STATIC_URL + src);
            }
        }
        if ("link".equals(this.element.tagName())) {
            String src = this.element.attr("href");
            if (StrUtil.isNotBlank(STATIC_URL)) {
                this.element.attr("href", STATIC_URL + src);
            }
        }
        if ("script".equals(this.element.tagName())) {
            String src = this.element.attr("src");
            if (StrUtil.isNotBlank(STATIC_URL)) {
                this.element.attr("src", STATIC_URL + src);
            }
        }
    }
    public void parser() {
        staticPath();
        // 判断是否为最小节点,如果是且没有特殊标签,则跳过清空
        if (!isNeedEmpty()) {
            return;
@@ -112,6 +123,7 @@
            i++;
            try {
                Template.TAGS.add(tagsEnum.getName());
                // {id=${col.id}, page=1, limit=5, field=art} ${col.id} 形式需先设置值
                String tagValue = attributes.get(tagsEnum.getName());
                tagValue = attrValueFormat(tagValue);
@@ -139,6 +151,10 @@
    public void runDataInject() {
        Attributes attributes = this.element.attributes();
        for (Attribute attribute : attributes) {
            if (attribute.getKey().startsWith("\\$")) {
                Template.TAGS.add(attribute.getKey());
            }
            String key = attribute.getKey().replaceAll("\\$", "");
            String value = attribute.getValue();
@@ -158,9 +174,7 @@
                this.element.removeAttr("class");
                this.element.attr("class", evaluate);
            } else if (value.contains( "${")) {
                String result = attrValueFormat(value);
                System.out.println(result);
                if ("text".equals(key)) {
                    this.element.text(result);
                } else {
@@ -258,4 +272,8 @@
    public void systemData(Map<String, Object> systemData) {
        this.systemData = systemData;
    }
    public Object getSystemDataValue(String key) {
        return this.systemData.get(key);
    }
}