javaweb中自定义标签写的模仿foreach标签里面的一个问题

List<Student>是这样的,有句话是可有可无的,就是Studentstu=(Student)object;pageContext.setAttribute(var... List<Student>是这样的,有句话是可有可无的,就是Student stu = (Student)object;pageContext.setAttribute(var, stu);
只要写这for (Object object : list) {
pageContext.setAttribute(var, object);
就可以产生一样的效果。
那么请问为什么在这里就不需要向下转型再添加呢?
<%
List list = new ArrayList();
list.add(new Student("rose",18));
pageContext.setAttribute("list",list); %>
<it:forEach items="${list}" var="student">
姓名:${student.stuName} - 年龄:${student.age }<br/>
</it:forEach>这里student.stuName的明明是Student类里面写的方法,Object里面没对应的方法,不需要强转再添加么?
展开
 我来答
oracle_bone_
2016-06-05 · 超过11用户采纳过TA的回答
知道答主
回答量:25
采纳率:0%
帮助的人:16.1万
展开全部
说说我个人的理解吧:
<%
List list = new ArrayList();
list.add(new Student("rose",18));
pageContext.setAttribute("list",list); %>
这段demo是作为java嵌入在jsp中,他不属于js的一部分;在执行时,是需要借助JAVA编译器,并且,在JSP文件头还要做JAVA的引入;
这段代码:
<it:forEach items="${list}" var="student">
姓名:${student.stuName} - 年龄:${student.age }<br/>
中间使用的是C标签,student.stuName也符合C语言的访问方式;
接下来就是要说到映射,其实list在映射入口钱就是一个student的list类型,那么映射后,类型是不会变的,当然,遵守JAVA自动向上转型的规则,你可以按照object的方式来访问。但他本省就属于student类,无需再做转换;
trIm4UT
2016-06-04 · TA获得超过270个赞
知道小有建树答主
回答量:309
采纳率:25%
帮助的人:116万
展开全部
人家用的是反射机制实现的。不需要强制转换。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式