我正在尝试将JSoup与ColdFusion结合使用以清理一些HTML,但是遇到以下错误:
找不到addTags方法。
要么没有指定方法名称和参数类型的方法,要么addTags方法被ColdFusion无法可靠解密的参数类型重载。ColdFusion找到了0个与提供的参数匹配的方法。如果这是Java对象,并且您已验证该方法存在,请使用javacast函数来减少歧义。
我的代码如下:
<cfset jsoup = createObject('java','org.jsoup.Jsoup')>
<cfset Whitelist = createObject("java", "org.jsoup.safety.Whitelist")>
<cfset parsedhtml = jsoup.parse(form.contentrichtext)>
<cfset post = parsedhtml.body().html()>
<cfset post = jsoup.clean(post, Whitelist.none().addTags("span"))>
我已转出白名单对象,并且存在添加标签方法。如果我删除addTags()方法并使用标准的JSoup白名单之一,例如basic(),none()或Relaxed(),则代码可以完美运行。据我从其他在线示例中看到的,这是使用addTags()方法的正确语法。
我对在ColdFusion中使用Java对象还很陌生,所以这让我很困惑。
任何帮助将不胜感激。
谢谢,迈克尔。
该addTags
方法需要一个字符串数组,而不仅仅是一个字符串。首先将值放入数组:
<!--- create a CF array then cast it as type string[] --->
<cfset tagArray = javacast("string[]", ["span"]) >
<cfset post = jsoup.clean(post, Whitelist.none().addTags( tagArray ))>
编辑:
据我从其他在线示例中看到的,这是正确的语法
为了澄清,这 是 正确的语法-
适用于Java。在Java可以传递一个可变的参数数目使用任一阵列或此语法:addTags("tag1", "tag2", ...)
。但是,CF仅支持数组语法。因此,如果cfdump java对象,则将在类名后面看到方括号,这表明参数是一个数组:
method: addTags( java.lang.String[] ) // array of strings
问题内容: 我似乎无法从我的新手开始,我在这里搜索了答案,但似乎无法解决问题。我希望有人有一个简单的解决方案。提前致谢。 这是错误: MainActivity.java AndroidManifest.xml activity_main.xml StartSearch.java 问题答案: 问题出在您的方法签名中 它应该只有一个参数,也就是一个。 更改为 显然可以是你希望它是什么,但你应该让一些有
错误:Einstein类中找不到Main方法,请将Main方法定义为:public static void Main(string[]args)或JavaFX应用程序类必须扩展JavaFX.application.application 我怎么才能修好这个?
我得到一个错误: 错误:在类testPackage.Method1中找不到Main方法,请将Main方法定义为:public static void Main(字符串[]args)或JavaFX应用程序类必须扩展JavaFX.application.application“ 该计划是:
嗨。我刚到爪哇。我正试图写一个继承程序,得到这个错误。 错误:在类myPackage.inheritage中找不到Main方法,请将Main方法定义为:public static void Main(string[]args)或JavaFX应用程序类必须扩展JavaFX.application.application
我是刚开始使用gradle的,我遇到了一个构建错误,但我并不真正理解这个错误。我的项目只是一个空壳,有目录结构,没有java源代码。这是我的root build.gradle文件 当我执行gradle build命令时,生成失败,因为它不知道带有以下消息的testCompile方法: