如何在我的 getProjectLists 上调用我创建的方法以从字符串中删除 HTML 标签
How to call my created method on my getProjectLists in order to remove HTML tags from String
这是我的 getProjectLists 操作
def getProjectLists() {
def currentUser = springSecurityService.currentUser
def kups = ([['name':'<b>Sample 1</b>'.removeHthml()],
['name':'<b>Sample 2</b>']])
render kups as JSON
}
这是我的class和方法
class HtmlTagRemove {
static String removeHthml(String inputStr) {
return inputStr.replaceAll("<.*?>","")
}
}
这是我遇到的错误
No signature of method: java.lang.String.removeHtml() is applicable for argument types: () value: []
跟进
(即使回答了原始问题,我的后续问题如下)
我该怎么做才能使我的方法可以从字符串调用,例如:'<b>Sample 1</b>'.removeHtml()
?
前提是它们在同一个包中(否则你需要导入HtmlTagRemove
或使用完整的包名对其进行质量处理)你可以这样做:
def kups = ([['name':HtmlTagRemove.removeHthml('<b>Sample 1</b>')],
['name':'<b>Sample 2</b>']])
原因是 removeHtml
是一个静态方法。
回答后续问题:
您可以扩展字符串 class。 Documentation
String.metaClass.removeHtml {
delegate.replaceAll("<.*?>","")
}
'<b>Sample 1</b>'.removeHtml()
我会使用像 Jsoup 这样的库从字符串中删除 html:
Document doc = Jsoup.parse(html)
return doc.text())
这是我的 getProjectLists 操作
def getProjectLists() {
def currentUser = springSecurityService.currentUser
def kups = ([['name':'<b>Sample 1</b>'.removeHthml()],
['name':'<b>Sample 2</b>']])
render kups as JSON
}
这是我的class和方法
class HtmlTagRemove {
static String removeHthml(String inputStr) {
return inputStr.replaceAll("<.*?>","")
}
}
这是我遇到的错误
No signature of method: java.lang.String.removeHtml() is applicable for argument types: () value: []
跟进 (即使回答了原始问题,我的后续问题如下)
我该怎么做才能使我的方法可以从字符串调用,例如:'<b>Sample 1</b>'.removeHtml()
?
前提是它们在同一个包中(否则你需要导入HtmlTagRemove
或使用完整的包名对其进行质量处理)你可以这样做:
def kups = ([['name':HtmlTagRemove.removeHthml('<b>Sample 1</b>')],
['name':'<b>Sample 2</b>']])
原因是 removeHtml
是一个静态方法。
回答后续问题:
您可以扩展字符串 class。 Documentation
String.metaClass.removeHtml {
delegate.replaceAll("<.*?>","")
}
'<b>Sample 1</b>'.removeHtml()
我会使用像 Jsoup 这样的库从字符串中删除 html:
Document doc = Jsoup.parse(html)
return doc.text())