Tip案例——foreach
来源:互联网 发布:淘宝动漫周边 编辑:程序博客网 时间:2024/06/05 04:11
foreach
<%
Listlist=new ArrayList();
list.add(”aaa”);
list.add(”bbb”);
list.add(”ccc”);
list.add(”ddd”);
request.setAttribute(”list”,list) ;
%>
Jsp
<c:foreachitems=”${list}” var=”str”>//str为迭代变量
${str}
</c:foreach>
TestForEach.jsp部分
<%
List list=new ArrayList();
list.add("aaa");
list.add("bbb");
list.add("ccc");
list.add("ddd");
request.setAttribute("list",list) ;
%>
<c:foreach items="${list}"var="str">
${str}
</c:foreach>
<br/>-------------------------------------<br/>
<%Map map=new HashMap();
map.put("aa","张三");
map.put("bb","李四");
map.put("cc","王五");
map.put("dd","赵柳");
request.setAttribute("map",map);
%>
<c:foreach items="${map}"var="name">
${name}
</c:foreach>
<br/>-------------------------------------<br/>
<%
//integer类型数组会自动封装
Integer[] num={1,2,3,4,5};
request.setAttribute("num",num);
%>
<c:foreach items="${num}"var="i">
${i}
</c:foreach>
<br/>-------------------------------------<br/>
<%
int[] arr={6,7,8,9,0};
request.setAttribute("arr",arr);
%>
<c:foreach items="${arr}"var="index">
${index}
</c:foreach>
<br/>-------------------------------------<br/>
<%
String[]string={"qqq","www","eee"};
request.setAttribute("string",string);
%>
<c:foreach items="${string}"var="string">
${string}
</c:foreach>
ForEachTag.java部分:
packagecom.hbsi.tag;
importjava.io.IOException;
importjava.lang.reflect.Array;
importjava.util.ArrayList;
importjava.util.Collection;
importjava.util.Iterator;
importjava.util.Map;
importjavax.servlet.jsp.JspException;
importjavax.servlet.jsp.tagext.SimpleTagSupport;
public class ForEachTag extendsSimpleTagSupport {
privateObject items;
privateString var;
publicvoid setItems(Object items) {
this.items= items;
}
publicvoid setVar(String var) {
this.var= var;
}
@Override
publicvoid doTag() throws JspException, IOException {
//TODO Auto-generated method stub
//Listlist=(List)items;
//返回迭代器
//java.util.Iteratorit= list.iterator();
//定义集合对象
Collectioncollection=null;
if(itemsinstanceof Map){//映射
Mapmap=(Map)items;
//两列集合转换成单列
collection=map.entrySet();
}elseif(items instanceof Collection){//集合
collection=(Collection)items;
}/*elseif(items instanceof Object[]){//数组
Object[]objs=(Object[])items;
collection=Arrays.asList(objs);
}elseif(items instanceof int[]){
//
}*/
//用反射机制判断数组
elseif(items.getClass().isArray()){
collection=newArrayList();
intlength=Array.getLength(items);
for(inti=0;i<length;i++){
//获取到元素
//把元素放在collection对象中
collection.add(Array.get(items,i));
}
}
//迭代器
Iteratorit=collection.iterator();
while(it.hasNext()){
Objectobj=it.next();
this.getJspContext().setAttribute(var,obj);
this.getJspBody().invoke(null);
}
}
}
c.tld部分:
<tag>
<name>foreach</name>
<tag-class>com.hbsi.tag.ForEachTag</tag-class>
<body-content>scriptless</body-content>
<attribute>
<name>items</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>var</name>
<required>true</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
</tag>
- Tip案例——foreach
- Tip案例——else...if....
- foreach 案例
- java8 forEach案例
- PeopleTools Tip — Cloning a Component Interface
- Perl——数组、foreach
- tip
- Tip
- tip
- Tip:
- TIP
- Tip
- tip
- Tip
- Tip
- tip
- tip:关于rangepartition用到多列的一个小案例
- 短语随手记——tip of the iceberg
- 嵌套循环编写,信息树遍历!js编写
- 逻辑地址、线性地址(虚拟地址)、物理地址(有效地址、总线地址)
- 生活点滴记录-- 两点一线
- S3C2410下WinCE6.0的启动过程详解
- Results Generaton - Environment or Test Generator?
- Tip案例——foreach
- Android ANR异常及解决方法
- qt学习笔记(七)之数据库简介
- QA in verification
- Oracle Connect By Start With
- 个性缩放图片NinePatchDrawable
- 问题:Activity has leaked window android.widget.RelativeLayout@407cd588 that was originally added here
- Word2007删除页眉横线
- 封装的库