From 38034ab0aed163edb44a2523205be738e9ec5d7d Mon Sep 17 00:00:00 2001
From: 吴学文 <wuxuewen@wuxuewendeMacBook-Pro.local>
Date: 星期二, 26 三月 2019 00:02:07 +0800
Subject: [PATCH] 完成自封装vc-validate 功能
---
WebService/src/main/java/com/java110/web/core/VueComponentElement.java | 24 ++++++++++++++++++++----
1 files changed, 20 insertions(+), 4 deletions(-)
diff --git a/WebService/src/main/java/com/java110/web/core/VueComponentElement.java b/WebService/src/main/java/com/java110/web/core/VueComponentElement.java
index 6b26d2e..1e520e6 100644
--- a/WebService/src/main/java/com/java110/web/core/VueComponentElement.java
+++ b/WebService/src/main/java/com/java110/web/core/VueComponentElement.java
@@ -1,9 +1,15 @@
package com.java110.web.core;
+import com.alibaba.fastjson.JSONObject;
+import com.java110.web.smo.impl.LoginServiceSMOImpl;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.thymeleaf.Arguments;
import org.thymeleaf.dom.*;
import org.thymeleaf.processor.element.AbstractMarkupSubstitutionElementProcessor;
+import org.thymeleaf.util.DOMUtils;
+import java.io.StringReader;
import java.util.ArrayList;
import java.util.List;
@@ -13,21 +19,30 @@
*/
public class VueComponentElement extends AbstractMarkupSubstitutionElementProcessor {
+ private final static Logger logger = LoggerFactory.getLogger(VueComponentElement.class);
+
+
protected VueComponentElement(String elementName) {
super(elementName);
}
@Override
protected List<Node> getMarkupSubstitutes(Arguments arguments, Element element) {
+
+ //logger.debug("arg:{},element:{}", JSONObject.toJSONString(arguments),element.getAttributeValue("name"));
List<Node> nodes = new ArrayList<>();
//鑾峰彇妯℃澘鍚嶇О
String componentName = element.getAttributeValue("name");
+ logger.debug("姝e湪瑙f瀽缁勪欢{}",componentName);
String html = VueComponentTemplate.findTemplateByComponentCode(componentName+"."+VueComponentTemplate.COMPONENT_HTML);
if(html == null){
throw new RuntimeException("鍦ㄧ紦瀛樹腑鏈壘鍒扮粍浠躲��"+componentName+"銆�");
}
- Node nodeHtml = new Macro(html);
- nodes.add(nodeHtml);
+ //List<Node> tmpNodes = DOMUtils.getHtml5DOMFor(new StringReader(html)).getChildren();
+ List<Node> tmpNodes = DOMUtils.getLegacyHTML5DOMFor(new StringReader(html)).getChildren();
+ for(Node tmpNode : tmpNodes) {
+ nodes.add(tmpNode);
+ }
//css
String css = VueComponentTemplate.findTemplateByComponentCode(componentName+"."+VueComponentTemplate.COMPONENT_CSS);
if(css != null){
@@ -36,14 +51,15 @@
nodes.add(nodeCss);
}
- //css
+ //js
String js = VueComponentTemplate.findTemplateByComponentCode(componentName+"."+VueComponentTemplate.COMPONENT_JS);
if(js != null){
- js = "<script type=\"text/javascript\">" + js +"</script>";
+ js = "<script type=\"text/javascript\">//<![CDATA[ \n" + js +"//]]>\n</script>";
Node nodeJs = new Macro(js);
nodes.add(nodeJs);
}
+
return nodes;
}
--
Gitblit v1.8.0