我使用的是 grails 2.3
<td>${params?.query?name.replace(params.query,'<span>'+params.query+'</span>'):name}</td>
在 gsp 页面的上述语句中,如果 params.query 值可用,我想突出显示 name 属性。但生成的代码包含 html 等效字符。
<td><span>Mess</span>age</td>
如何在gsp页面中显示如下所示。在 1.3 版本中它有效。但在 2.3 版本中,相同的代码如下所示。我想将其显示为,
<span>message</span>
最佳答案
您的 Config.groovy 中可能有此设置:
grails.views.default.codec = "html"
这意味着在 GSP 中的所有 ${} 表达式中,诸如“<”和“>”之类的特殊 HTML 字符都将被编码。一般来说,这是一个合理的设置,因为它可以防止 XSS 攻击。
如果您需要避免某个特定表达式的这种默认行为,您可以使用以下命令:
<td><%=params?.query?name.replace(params.query,'<span>'+params.query+'</span>'):name%></td>
关于grails - Gsp 页面在替换为字符串时保留 html 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20394324/