Groovy无法对ashtml()进行编码
我正在使用Grails2.4.3。当我将数据输入到textarea时,使用新行并保存到db。之后,我将其加载到视图中,用break替换新行。但是,它显示的是Groovy无法对ashtml()进行编码,html,grails,groovy,textarea,Html,Grails,Groovy,Textarea,我正在使用Grails2.4.3。当我将数据输入到textarea时,使用新行并保存到db。之后,我将其加载到视图中,用break替换新行。但是,它显示的是,而不是break 下面是我使用的代码: ${book.introduction.encodeAsHtml().replace(/\r\n|\r|\n/g,"<br />")} ${book.introduction.encodeAsHtml().replace(/\r\n |\r |\n/g,“”)} 默认情况下,新的XSS预
,而不是break
下面是我使用的代码:
${book.introduction.encodeAsHtml().replace(/\r\n|\r|\n/g,"<br />")}
${book.introduction.encodeAsHtml().replace(/\r\n |\r |\n/g,“
”)}
默认情况下,新的XSS预防将所有${}
字符串编码为HTML,因此您的最终产品将被编码
您可以将整个输出包装在raw
中,以避免这种情况:
${raw( book.introduction.encodeAsHtml().replace(/\r\n|\r|\n/g,"<br />") )}
${raw(book.introduction.encodeAsHtml().replace(/\r\n |\r |\n/g,“
”))
有关更多详细信息,请参阅。值得考虑的是,您正在渲染什么,以及XSS是否会成为您的问题。只要您信任输出,有多种方法可以做到这一点: 另一个答案表明:
${raw(book.introduction.encodeAsHtml().replace(/\r\n|\r|\n/g,"<br />"))}
使用Grails的标记库:
<g:encodeAs code="Raw">${book.introduction.encodeAsHtml().replace(/\r\n|\r|\n/g,"<br />")}</g:encodeAs>
<g:encodeAs code="None">${book.introduction.encodeAsHtml().replace(/\r\n|\r|\n/g,"<br />")}</g:encodeAs>
${book.introduction.encodeAsHtml().replace(/\r\n |\r |\n/g,“
”)}
${book.introduction.encodeAsHtml().replace(/\r\n |\r |\n/g,“
”)}
<g:encodeAs code="Raw">${book.introduction.encodeAsHtml().replace(/\r\n|\r|\n/g,"<br />")}</g:encodeAs>
<g:encodeAs code="None">${book.introduction.encodeAsHtml().replace(/\r\n|\r|\n/g,"<br />")}</g:encodeAs>