JSP Scriptlet의 다음 코드는 Spring/Hibernet을 사용하여 필요한 코드와 정확히 일치합니다.forEach 루프 내에서 JSTL의 문자열을 연결하는 방법은 무엇입니까?
<%
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에 표시된 것과 같은 빈 문자열로 다시 초기화해야합니다.
나는 사용자 정의 태그 또는 함수에서이 마무리 것; 쉼표로 구분 된 목록을 작성하는 것만으로도 많은 소음이 발생합니다. –