У меня есть результаты от
Query query = session.createQuery("From Pool as p left join fetch p.poolQuestion as s");
запрос, и я хотел бы отобразить его на JSP.
У меня есть цикл:
<c:forEach items="${pools}" var="pool">
<p>${pool.name}</p>
</c:forEach>
и я хотел бы отобразить результаты из таблицы poolQuestion (которая является таблицей Join). Значение, которое я хочу отобразить, это «answer».
Как я могу это сделать?
<c:forEach items="${pools}" var="pool">
<p>${pool.answer}</p>
<p>${pool.name}</p>
</c:forEach>
Приведенный выше код не работает.
Ошибка:
org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/views/home.jsp at line 21
18: <c:forEach items="${pools}" var="pool">
19:
20: <p>${pool.name}</p>
21: <c:out value="${pool.poolQuestion.answer}"/>
22:
23: </c:forEach>
24:
Модель:
public List<Pool> getAll(){
Session session = sessionFactory.getCurrentSession();
Query query = session.createQuery("From Pool as p left join fetch p.poolQuestions as s");
return query.list();
Контроллер:
List<Pool> pool = poolService.getAll();
model.addAttribute("pools", pool);
А вид:
<c:forEach items="${pools}" var="pool">
<p>${pool.name}</p>
<c:out value="${pool.answer}"/>
</c:forEach>
PS. $ {pool.name} отображается правильно
**
ОК, я понял, мой код должен выглядеть так:
**
<c:forEach items="${pools}" var="pool">
<c:out value="${pool.name}"/>
<c:forEach items="${pool.poolQuestions}" var="poolq">
<c:out value="${poolq.answer}" />
</c:forEach>
</c:forEach>
Я хочу сделать еще один для каждого ...