我有一个.gsp页,学生可以在其中选择他们所选择的类(class)。然后,该选择将存储在数组列表中。我还有另一个.gsp页面,显示学生详细信息,在这些详细信息中,它显示他们从另一页面选择的类(class)。但是,当它显示类(class)时,它会显示为:“[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和仅带标签的变量本身来显示变量。所有方法都显示在方括号中。任何有关如何删除括号的建议表示赞赏。如果需要任何其他代码,我可以提供。谢谢。
最佳答案
如果您的studentDetails?.course.courseName
包含类(class)的List
,并且想要显示所有类(class),则需要将其转换为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>
另外,如果您从用户那里获得此数据(类(class)名称),我建议添加
.encodeAsHTML()
,以转义变量内的任何HTML内容(避免使用XSS等)。喜欢:${studentDetails.course.courseName.join(', ').encodeAsHTML()}
关于grails - Grails:显示变量时删除不需要的支架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34114437/