html - Representative.replace()在数组列表Grails 2.3.8上不起作用

标签 html arrays grails tags

这是为了替换HTML标签的代码:

  def str
  String.metaClass.removeHtml {
      def removeThisHtml = [
         [htmlCode: "`",  value: "`"], 
         [htmlCode: "@",  value: "@"], 
         [htmlCode: "&",  value: "&"],
         [htmlCode: "\",  value: "\\"],
         [htmlCode: """, value: '"'], 
         [htmlCode: "'",  value: "'"], 
         [htmlCode: "&lt;",   value: "<"],
         [htmlCode: "&gt;",   value: ">"]
      ]

      removeThisHtml.each { element ->
         str = delegate.replace(element.htmlCode, element.value)
      } 
      return str
  }

这是我的 Controller 的代码形式:
def getProjectLists() {
  def currentUser = springSecurityService.currentUser
  def kups = ([['name':'<b>Sample 1</b>'.removeHtml()],['name':'<b>Sample 2</b>']])
  render kups as JSON  
}

我的预期输出是:

样本1 样本2

但是输出是:

Sample1 Sample2

最佳答案

我认为您真正想要的是转义HTML-显示HTML标签和实体,因此该函数的名称removeHtml有点误导,escapeHtml会更适合。

通常,我建议您不要自己做这样的事情,因为其他人已经做到了,并且很有可能做得更好。

例如 Apache Commons 具有StringEscapeUtils.escapeHtml方法。

String.metaClass.removeHtml { 
    return org.apache.commons.lang.StringEscapeUtils.escapeHtml(delegate) 
}

关于html - Representative.replace()在数组列表Grails 2.3.8上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51096822/

相关文章:

html - 不用javascript可以实现行高亮效果吗?

javascript - 不同图像(图像网格)的宽度和高度修复,即使在 Bootrap 中窗口大小发生变化

python - 在没有 Python 循环的情况下使 numpy 数组单调

grails - 如何在Grails Webflow中上传文件?

javascript - 如何使用 localstorage 存储 jquery mobile 的复选框状态?

javascript - div关闭时停止播放YouTube视频

java - 如何在没有java utils的情况下比较两个字符串数组

Java,计算随机数并保存的程序

grails - Grails 2.2.2 createCriteria抛出错误

grails - grails spring-security-core插件在IntelliJ IDEA 9/10下不起作用