String 在grails页面中显示多行文本

String 在grails页面中显示多行文本,string,grails,newline,gsp,String,Grails,Newline,Gsp,我对此非常恼火,我需要显示我在grails 2.3.7中从textarea获得的文本,但是当我替换br/的字符并执行encodeAsHTML()时,我得到的是br's every,而不是新行 怎么做的?这就是我尝试过的: ${cotizacionInstance.descripcion.encodeAsHTML().replaceAll('\r\n', '<br/>')} ${cotizacionInstance.descripcion.replaceAll('\r\n', '&l

我对此非常恼火,我需要显示我在grails 2.3.7中从textarea获得的文本,但是当我替换br/的字符并执行encodeAsHTML()时,我得到的是br's every,而不是新行

怎么做的?这就是我尝试过的:

${cotizacionInstance.descripcion.encodeAsHTML().replaceAll('\r\n', '<br/>')}

${cotizacionInstance.descripcion.replaceAll('\r\n', '<br/>').encodeAsHTML()}

<%=cotizacionInstance.descripcion.replaceAll('\r\n', '<br/>').encodeAsHTML()%>

<%=cotizacionInstance.descripcion.encodeAsHTML().replaceAll('\r\n', '<br/>')%>

<%=cotizacionInstance.descripcion.replaceAll('\r\n', '<br/>').decodeHTML()%>

<%=cotizacionInstance.descripcion.decodeHTML().replaceAll('\r\n', '<br/>')%>
${cotizacionInstance.Description.encodeAsHTML().replaceAll('\r\n','
') ${cotizacionInstance.Description.replaceAll('\r\n','
').encodeAsHTML()}
我不喜欢使用pre标签的结果,因为我失去了所有的响应能力

我在google chrome inspector中看到我的字符串在双引号之间,但我不知道如何删除它们


谢谢

您的描述中遗漏了一些因素,这些因素使您无法确定,但获得您所追求的行为的一种方法是使用以下内容将文本标记为原始文本

${raw(cotizacionInstance.descripcion.replaceAll('\r\n', '<br/>'))}
${raw(cotizacininstance.description.replaceAll('\r\n','
'))

我希望这会有帮助。

你需要放松你的反斜杠:

replaceAll("\\n", "<br/>")
replaceAll(\\n“,“
”)
有关这方面的更多信息,请访问。请确保您了解所有这些工作原理。如果
cotizacininstance.description
的值可能包含恶意标记,并且您将其标记为原始标记,则该值中的任何内容都将被视为不可替换。这取决于你的应用程序,也许可以,但这是需要小心的。这就是我需要的,谢谢!,我将在替换之前使用encodeAsHTML,这样恶意标记就不会伤害我;)仅供后代参考:正确的解决方案如下所示:
${raw(cotizacionInstance.description.encodeAsHTML()).replaceAll(“\\n”,”
“}
replaceAll正在工作问题是,我看到的是
而不是换行符,而换行符只有在她试图用反斜杠后跟n替换文字时才有意义。我不认为这是她试图做的。我认为她是在尝试替换换行符。