Добавление вложенных столбцов в отчет jstl с помощью datatables dandelion
Я использую одуванчик, чтобы показать таблицу (из спящего БД):
<datatables:table id="listPersons" data="${listPersons}" row="person"
cellspacing="0" width="100%"
theme="bootstrap2" pageable="true" info="true">
<datatables:column title="Person" property="person"/>
<datatables:column title="Car" property="car"/>
</datatables:table>
это работает отлично.
Но мне нужно добавить еще два столбца из класса Parents (hibernate DB): "Имя отца" и "Имя матери". Класс (который также находится в спящем режиме) имеет переменную: Parents parents;
Я попробовал что-то вроде:
<c:forEach items="${person.parents}" var="parents">
<datatables:column title="Father name" property="parents.father_name"/>
</c:forEach>
Но я получил исключение:
javax.servlet.ServletException: javax.servlet.jsp.JspException: java.lang.NoSuchMethodException: неизвестное свойство 'имя_отца' в классе 'класса org.hibernate.collection.internal.PersistentBag'
Я пытался делать это во многих вариантах (используя таблицы данных одуванчиков), но никто не работал.
1 ответ
Вы должны изменить на
<datatables:column title="Father name">
<c:forEach items="${person.parents}" var="parent">
<c:out value="${parent.father_name}"/>
</c:forEach>
</datatables:column>
Проблема в том, что property="parents.father_name"/>
не использует переменную, которую вы установили в forEach, а использует свойство parent из объекта hibernate, который является коллекцией