Добавление вложенных столбцов в отчет 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, который является коллекцией

Другие вопросы по тегам