我有一个学生表单,表单中有位置,当我运行应用程序并显示表单时,它看起来像这样
地点:Jl Excel Road Ring No.36 SINGAPORE,10110
但我想把这个位置分成两行
Location : Jl Excel Road Ring No.36
SINGAPORE, 10110
这是gsp
<td><g:message code="location.label"/></td>
<td>${studentInstance.location}</td>
这是def show中的服务
def loc = Location.findByTidAndDeleteFlag(params.tid, "N")
if(loc != null){
studentInstance.location = loc.address1 + " " + loc.city + ", " + loc.zipCode
}
else{
studentInstance.location = ""
}
答案 0 :(得分:1)
使用 br 标记
studentInstance.location = loc.address1 + "<br/> " + loc.city + ", " + loc.zipCode
然后你可以直接渲染非转义的HTML:
<%=studentInstance.location%>
默认编解码器可能是配置中的HTML。
检查grails.views.default.codec
欲了解更多信息,请阅读: http://grails.org/doc/2.2.1/ref/Plug-ins/codecs.html
我相信从Grails 2.3.x开始,default views codec is HTML使用XML转义以防止XSS攻击。
答案 1 :(得分:0)
这是一种不好的方法,但你可以尝试
studentInstance.location = loc.address1 + "<br> " + loc.city + ", " + loc.zipCode
通常,我会在视图中提供每个地址元素,以便样式在视图中比在控制器中灵活,原始的样子如下:
<td><g:message code="location.label"/></td>
<td>${model.address1} <br> ${model.city}, ${model.zipCode}</td>