Следующий код в JSP Scriptlet работает именно так, как мне нужно (используя Spring / Hibernet).
<%
org.hibernate.Session s=NewHibernateUtil.getSessionFactory().getCurrentSession();
s.beginTransaction();
java.util.List<model.Movies> m=s.createQuery("from model.Movies order by moviesId").list();
for(model.Movies row:m)
{
String id="";
for(model.Language lan:row.getLanguages())
{
id+=lan.getLanguageId()+",";
}
out.println(id);
}
s.flush();
s.getTransaction().commit();
%>
Отображает фильм langiageId
для каждого фильма в базе данных (один фильм имеет много языков). он объединяет languageId
через запятую для каждого фильма. Например, если первый фильм имеет 3 languageId, он отображает 1,2,3. Если второй фильм (строка в базе данных) имеет 4 языка, он отображает 4,5,6,7 в следующей строке и так далее. Как то же самое может быть возможно с JSTL? Ниже приведена неполная версия цикла JSTL forEach
, которую я не понял.
<c:forEach items="${list}" var="row" varStatus="status">
<c:forEach items="${row.languages}" var="lan" varStatus="status">
<c:set value="${lan.languageId}" scope="request" var="id">
</c:set>
</c:forEach>
</c:forEach>
Как я могу получить languageId
через запятую для каждой группы фильмов отдельно? Когда внутренний forEach
завершится, id
должен быть повторно инициализирован в пустую строку, такую как строка, показанная в Scriptlet.