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中显示的字符串。
我想在一个自定义的标签或包装的功能这件事;这是很多噪音,只是为了创建一个逗号分隔列表。 – 2012-02-26 14:43:46