2015-12-06 2 views
0

У меня есть страница .gsp, где учащийся может выбрать курс, в котором они находятся. Затем этот выбор сохраняется в списке массивов. У меня есть другая страница .gsp, в которой отображаются данные о студенте, и в этих подробностях он показывает, какой курс они выбрали на другой странице. Однако, когда он отображает курс, он выглядит следующим образом: «[имя_курса]», но я бы хотел, чтобы он отображался без скобок: «courseName».Grails: удаление нежелательных скобок при отображении переменной

Это мой код для отображения выбора:

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

До сих пор я пытался отображая переменную г: fieldValue, г: сообщение, и только сам переменного без тега. Все методы отображаются с помощью скобок. Приветствуются любые предложения о том, как удалить скобки. Если какой-либо другой код необходим, я могу его предоставить. Благодарю.

ответ

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()} 
+0

$ {studentDetails.course.courseName.join()} работал для меня. Благодаря! –

Смежные вопросы