grails - Gsp 页面在替换为字符串时保留 html 标签

标签 grails grails-2.3

我使用的是 grails 2.3

<td>${params?.query?name.replace(params.query,'<span>'+params.query+'</span>'):name}</td>

在 gsp 页面的上述语句中,如果 params.query 值可用,我想突出显示 name 属性。但生成的代码包含 html 等效字符。

<td>&lt;span&gt;Mess&lt;/span&gt;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/

相关文章:

grails - GORM Grails 2.3.5分配的ID不持久,被自动生成的ID覆盖

tomcat - Grails 插件安装错误 : java. lang.NoClassDefFoundError: org/grails/plugins/tomcat/fork/ForkedTomcatServer$_findSystemClasspathJars_closure3

Grails:addTo* 和removeFrom* 是否需要调用来保存?

tomcat - 在带有虚拟主机的 Tomcat6 上使用 Grails 时重定向主机不正确

Grails 选择标记结果

grails - 是否可以通过Webflow Controller操作访问 View 状态?

Grails 2.3域类保存崩溃应用

grails - Grails 2.0.0 JUnit测试@RunWith注释等效

spring - Grails Spring 安全休息插件

mongodb - grails mongodb不支持isDirty()方法吗