grails - Grails:显示变量时删除不需要的支架

标签 grails

我有一个.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/

相关文章:

html - 如何在gsp中将列表显示为多列

grails - 如何不使用Grails从数据库加载hasMany实体

mysql - 在 grails 中保存 2 个类的值

grails - 在grails中将新项插入 “hasMany”对象时对其执行操作

grails - Bootstrap.groovy中的自定义JSON不为域返回此类属性错误

hibernate - 条件API动态排序

grails - 选择语言

grails - Grails 命令对象可以有可变数量的参数吗?

Grails-在 EasyB 场景中编写 Selenium 代码

grails - 有关在Grails中实现域类关系和约束的问题