jsp代码问题

1.这段代码大概是什么意思?
2.<c:forEach items="${page.list}" var="film">是什么意思?var又是什么?
3.page.list方法返回了一个list,而list中定义的interface List<E> extends Collection<E>是什么意思?

代码如下:
<c:forEach items="${page.list}" var="film">
<div style="width: 150px;height:170px;float: left;padding-left: 12px">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td >
<dl style="width:100%;height:160px;">
<dd style="margin-left:0;">
<a href="<%=path %>/ProductDetail?id=${film[0]}">
<img width="145" height="110" src="<%=path %>/${film[6]}"/>
</a>
</dd>
<dt style="text-align: center;font-family: '微软雅黑'">
${film[2]}
</dt>
<dt style="text-align: center;color:#EE7942;font-family: '微软雅黑';font-size: 12px">
${film[4]}
</dt>
</dl>
</td>
</tr>
</table>
</div>
</c:forEach>

1.这段代码的意识是接收从后台查询成功后传过来的数据,如下截图

 2.<c:forEach items="${page.list}" var="film">是什么意思?var又是什么?

     <c:forEach items="${page.list}" var="film">代表引用了jsp核心标签库前缀为c, <c:forEach  >为循环控制,items:要进行迭代的集合。

  var:迭代参数的名称。在迭代体中可以使用的变量的名称,用来表示每一个迭代变量。类型为String


3.page.list方法返回了一个list,而list中定义的interface List<E> extends Collection<E>是什么意思?

  interface List<E> extends Collection<E>代表一个list接口继承了Collection集合,<E>代表用了泛型数据存储更加安全

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-04-23
1,这段代码的作用就是讲page.list这个列表中的每个元素循环打印在一个html 的table中,跟你用JSP直接写作用一样,但这里用的是JSTL标签和EL表达式。

2, <c:forEach>是JSTL里的一个标签,作用是将数组或列表元素进行遍历。
JSTL是JSP所支持的一个标准模板标签库。
<c:forEach items="${page.list}" var="film">的作用就是把page.list这个数组或列表(一般可能是ArrayList类型吧),进行循环遍历,其循环过程的每一个遍历元素就是var="film",也就是你可以用film这个变量表示当前遍历到的元素。

3,list是一个列表元素,interface List<E> extends Collection<E>是说它是一个继承自Collection的一个接口(Collection是Java里面用于表示集合这种数据结构的一个顶层接口,集合这种数据结构可以有很多形式,比如队列、链表等等),<E>这个符号表示泛型,E可以替换成任何Java类型,比如String, Integer等等,这样这种数据结构列表中的元素,就可以是这种约定的类型了。追问

<c:forEach items="${page.list}" var="film",还是没怎么明白,page.list中存放的是什么?里面的内容跟var有什么关系?是将film中的内容储存到list中然后通过循环打印出来的意思吗?

追答

page.list是你预先放入的,比如放到request里,session里, application里;var="xxx"里的xxx表示用这个xxx变量来代表当前循环中的列表元素,这个名字是在这个标签里你自己起的,只在这个标签的开始和结束符号之间有效,是个局部变量,作用就相当于for循环里的那个i,这么讲你明白了吗。

追问

是将page.list方法返回的list中的一部份信息付给film让它输出,然后再将下一部份信息给 film在输出吗

就是list里存的是好多字符串数组,将每个数组内容给film,一遍一遍的输出吗?我理解得对吗

本回答被网友采纳
相似回答