Как вызвать мой созданный метод в моих getProjectLists для удаления тегов HTML из строки - PullRequest
0 голосов
/ 28 июня 2018

Это мое действие 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 HtmlTagRemove {
    static String removeHthml(String inputStr) {
      return inputStr.replaceAll("<.*?>","")
    }
}

Это ошибка, с которой я столкнулся

No signature of method: java.lang.String.removeHtml() is applicable for argument types: () value: []

FOLLOW-UP (Несмотря на то, что на первоначальный вопрос был дан ответ, мой следующий вопрос следующий)

Что я могу сделать, чтобы мой метод вызывался из строки вроде: '<b>Sample 1</b>'.removeHtml()?

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

Ответ на следующий вопрос:

Вы можете расширить класс String. Документация

​String.metaClass.removeHtml {    
    delegate.replaceAll("<.*?>","")
}

'<b>Sample 1</b>'.removeHtml()

Я бы использовал библиотеку типа Jsoup , чтобы удалить html из строки:

Document doc = Jsoup.parse(html)
return doc.text())
0 голосов
/ 28 июня 2018

При условии, что они находятся в одном пакете (в противном случае вам нужно импортировать HtmlTagRemove или проверить его с полным именем пакета), вы можете сделать это:

def kups = ([['name':HtmlTagRemove.removeHthml('<b>Sample 1</b>')], ['name':'<b>Sample 2</b>']])

Причина в том, что removeHtml является статическим методом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...