Grails:显示变量时删除不需要的括号

时间:2015-12-06 05:38:33

标签: grails

我有一个.gsp页面,学生可以选择他们所在的课程。然后将该选择存储在数组列表中。我有另一个显示学生详细信息的.gsp页面,在这些详细信息中,它显示了他们从另一页面选择的课程。但是,当它显示课程时,它显示如下:“[courseName]”,但我希望它显示没有括号:“courseName”。

这是我显示选择的代码:

<g:if test="${studentDetails?.course}"> 
    <li class="fieldcontain"> 
        <span id="course-label" class="property-label"> 
        <g:message code="student.course.label" default="Course(s)" /></span> 
        <span class="property-value" aria-labelledby="course-label"> 
        <g:set var="course" value="${studentDetails?.course.courseName}" /> 
        <g:message message="${course}" /></span>
    </li> 
</g:if>

到目前为止,我已尝试使用g:fieldValue,g:message显示变量,并且只显示没有标记的变量本身。所有方法都显示括号。任何有关如何删除括号的建议都表示赞赏。如果需要任何其他代码,我可以提供它。感谢。

1 个答案:

答案 0 :(得分:1)

如果您的studentDetails?.course.courseName包含List个课程并且您想要显示所有课程,则需要将其转换为String。但List.toString()的默认实现使用括号。您可以使用.join(',')代替。

像:

<g:if test="${studentDetails?.course}"> 
    <li class="fieldcontain"> 
        <span id="course-label" class="property-label"> 
        <g:message code="student.course.label" default="Course(s)" /></span> 

        <span class="property-value" aria-labelledby="course-label">
        ${studentDetails.course.courseName.join(', ')}
        </span>
    </li> 
</g:if>

此外,如果您从用户那里获得此数据(课程名称),我建议添加.encodeAsHTML(),以转义变量内的任何HTML内容(避免使用XSS等)。像:

${studentDetails.course.courseName.join(', ').encodeAsHTML()}