From 6328a7d843ddeaa8417f895d9f0c13ed846cdada Mon Sep 17 00:00:00 2001 From: James Chu Date: Wed, 13 Dec 2023 16:12:08 +0800 Subject: [PATCH] refine ZK-5018 --- zk/src/main/java/org/zkoss/zk/ui/metainfo/Parser.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/zk/src/main/java/org/zkoss/zk/ui/metainfo/Parser.java b/zk/src/main/java/org/zkoss/zk/ui/metainfo/Parser.java index 72f58ad4ec..975351a182 100644 --- a/zk/src/main/java/org/zkoss/zk/ui/metainfo/Parser.java +++ b/zk/src/main/java/org/zkoss/zk/ui/metainfo/Parser.java @@ -1109,6 +1109,7 @@ private static String modifyAttrValueIfSimplified(String attrName, String attrVa String nm = null; char quot = (char) 0; int paramIndex = -1; + int inRoundBrackets = 0; for (int j = 0;; ++j) { if (j >= len) { modifiedCommandPropertySb.append(modifyAttrValueIfSimplified0(nm, sb.toString().trim(), paramIndex, isNamedParam)); @@ -1127,12 +1128,16 @@ private static String modifyAttrValueIfSimplified(String attrName, String attrVa sb.setLength(0); //cleanup paramIndex++; continue; //next name=value - } else if (cc == '=') { + } else if (cc == '=' && inRoundBrackets == 0) { nm = sb.toString().trim(); //name found sb.setLength(0); //cleanup continue; //parse value } else if (cc == '\'' || cc == '"') { quot = cc; + } else if (cc == '(') { + inRoundBrackets++; + } else if (cc == ')') { + inRoundBrackets--; } } else if (cc == quot) { quot = (char) 0;