Coldfusion 成员函数名称匹配 jSoup 函数名称。如何强制使用 jSoup 函数
Coldfusion member function name matches jSoup function name. How can I force the use of jSoup function
在 Coldfusion 10 中与 jSoup 一起使用的以下代码可以正常工作:
var jsoup = application.jsoup;
var newBody = jsoup.parseBodyFragment(FileRead(expandPath("\default\includes\display_objects\custom\routesmapping\routePageTemplate.cfm")));
var routeBadge = newBody.select(".routeBadge");
routeBadge.append("<img src=""#$.content('decalFileName')#"" />");
在 Coldfusion 2016 上,第 4 行出错,java.lang.String 无法转换为 org.jsoup.nodes.Element。
java.lang.ClassCastException: java.lang.String cannot be cast to
org.jsoup.nodes.Element at
org.jsoup.select.Elements.add(Elements.java:15) at
coldfusion.runtime.ArrayUtil.ArrayAppend(ArrayUtil.java:208) at
coldfusion.runtime.CFPage._arrayAppend(CFPage.java:578) at
coldfusion.runtime.CfJspPage.invokeMethodHandle(CfJspPage.java:3198)
at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:3155) at
coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:3072) at
它似乎使用了在 CF11 中添加的 ColdFusion 成员函数 append()
,而不是 jSoup append()
函数。
在这种情况下,如何强制使用 jSoup append()
函数而不是 CF append()
成员函数?
最终,我无法让 jSoup append() 方法在任何版本的 CF11 或 CF2016 上运行。我最终不得不切换到使用 html() 方法,然后将我的新字符串连接到现有内容。
所以代替:
descList.append("<dt>Booking Status:</dt><dd class = """ & statusClass &
"""><em>#status#</em></dd>");
我必须使用:
descList.html(descList.html() & "<dt>Booking Status:</dt><dd class = """ &
statusClass & """><em>#status#</em></dd>");
在 Coldfusion 10 中与 jSoup 一起使用的以下代码可以正常工作:
var jsoup = application.jsoup;
var newBody = jsoup.parseBodyFragment(FileRead(expandPath("\default\includes\display_objects\custom\routesmapping\routePageTemplate.cfm")));
var routeBadge = newBody.select(".routeBadge");
routeBadge.append("<img src=""#$.content('decalFileName')#"" />");
在 Coldfusion 2016 上,第 4 行出错,java.lang.String 无法转换为 org.jsoup.nodes.Element。
java.lang.ClassCastException: java.lang.String cannot be cast to org.jsoup.nodes.Element at org.jsoup.select.Elements.add(Elements.java:15) at coldfusion.runtime.ArrayUtil.ArrayAppend(ArrayUtil.java:208) at coldfusion.runtime.CFPage._arrayAppend(CFPage.java:578) at coldfusion.runtime.CfJspPage.invokeMethodHandle(CfJspPage.java:3198) at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:3155) at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:3072) at
它似乎使用了在 CF11 中添加的 ColdFusion 成员函数 append()
,而不是 jSoup append()
函数。
在这种情况下,如何强制使用 jSoup append()
函数而不是 CF append()
成员函数?
最终,我无法让 jSoup append() 方法在任何版本的 CF11 或 CF2016 上运行。我最终不得不切换到使用 html() 方法,然后将我的新字符串连接到现有内容。
所以代替:
descList.append("<dt>Booking Status:</dt><dd class = """ & statusClass &
"""><em>#status#</em></dd>");
我必须使用:
descList.html(descList.html() & "<dt>Booking Status:</dt><dd class = """ &
statusClass & """><em>#status#</em></dd>");