我使用的是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>
您可以编写:
<td>
<g:if test="${params?.query}">
<span>${params.query}</span>
</g:if>
<g:else>
${name}
</g:else>
</td>
我认为这是您可以在Config.groovy
中配置的内容
尝试以下设置
grails.views.default.codec = "html"