如何在gsp grails中设置字符串的格式?

时间:2016-03-08 14:28:33

标签: grails gsp

我试图在grails中格式化gsp中的字符串,但是没有得到我想要的结果。我只是在这里看一下这个答案(How to show String new lines on gsp grails file?)但是没有用......

这是我获得的字符串以及如何在视图中显示:

{ "name":"john", "surname": "Blat", "age": 11, "width": 30, "width": 600, "height": 150}

这是我想要的:

  { "name":"john", 
    "surname": "Blat", 
    "age": 11, 
    "width": 30, 
    "width": 600, 
    "height": 150}

这是我的gsp代码:

<g:if test="${myInstance?.person}">
                <li class="fieldcontain">
                    <span id="person-label" class="property-label"><g:message code="myInstance.person.label" default="person" /></span>
                        <span class="property-value" aria-labelledby="person-label"><g:fieldValue bean="${myInstance}" field="person"/></span>
                </li>
                </g:if>

这是我尝试但不做任何事情的一种方式(.replace(&#39; \ n&#39;,&#39;
&#39;):

<g:if test="${myInstance?.person.replace('\n','<br>')}">
                    <li class="fieldcontain">
                        <span id="person-label" class="property-label"><g:message code="myInstance.person.label" default="person" /></span>
                            <span class="property-value" aria-labelledby="person-label"><g:fieldValue bean="${myInstance}" field="person"/></span>
                    </li>
                    </g:if>

这是另一种方式,使用前标签:

<g:if test="${myInstance?.person}">
                    <li class="fieldcontain">
                        <span id="person-label" class="property-label"><g:message code="myInstance.person.label" default="person" /></span>
<pre>                           
<span class="property-value" aria-labelledby="person-label"><g:fieldValue bean="${myInstance}" field="person"/>
</pre></span>
                    </li>
                    </g:if>

2 个答案:

答案 0 :(得分:1)

如果encodeAsHtml无效,则表示属性之间没有\n。这段代码可以解决问题(但你必须调整它以对齐你的元素):

myInstance?.person.replaceAll(',\s\"', ',<br/>\s\"')

但是,这是一种肮脏的方式!您应该尝试将您的字符串格式源更改为encodeAsHtml可利用的内容;)

答案 1 :(得分:0)

我在我的gsp中尝试这个。当然,我已经有了&#39; \ n&#39;在db

${myobjectinstance?.myfield.encodeAsHTML().replaceAll('\n', '<br/>') }