Grails如何使地址显示在两行?

时间:2013-06-25 02:33:40

标签: grails gsp grails-controller

我有一个学生表单,表单中有位置,当我运行应用程序并显示表单时,它看起来像这样

  

地点: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 = ""
    }

2 个答案:

答案 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>