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里面没对应的方法,不需要强转再添加么? 展开
只要写这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里面没对应的方法,不需要强转再添加么? 展开
2个回答
展开全部
说说我个人的理解吧:
<%
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类,无需再做转换;
<%
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类,无需再做转换;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询