一、用简单标签来迭代集合元素
Tag处理器的源码:
public void doTag() throws JspException, IOException {
// TODO Auto-generated method stub
//先判定一下是什么类型的
Collection collection=null;
if(items instanceof Map){
Map map=(Map)items;
//两列的集合转换成单列
collection=map.entrySet();
//Collection是set集合或者list集合不再是映射
}else if(items instanceof Collection){
collection=(Collection)items;
//判断对象是否是不是数组的类型
}else if(items instanceof Object[]){
Object[] obj=(Object[])items;
//将指定数组转换成集合对象
collection=Arrays.asList(obj);
//利用反射机制 判断是否是基本类型的数组
}else if(items.getClass().isArray()){
collection=new ArrayList();
int length=Array.getLength(items);
for(int i=0;i<length;i++){
collection.add(Array.get(items, i));
}
}
Iterator it=collection.iterator();
while (it.hasNext()) {
Object obj = it.next();// 元素
this.getJspContext().setAttribute(var, obj);
this.getJspBody().invoke(null);
}
}
1、集合测试<br>
<%
List list=new ArrayList();
list.add("aaaa");
list.add("bbbb");
list.add("cccc");
list.add("dddd");
request.setAttribute("list",list);
%>
<f:foreach items="${list}" var="str">${str}<br></f:foreach>
<br>--------------------------<br>
<%--映射--%>
2、映射测试<br>
<%Map map=new HashMap();
map.put("aa","zhangsan");
map.put("bb","zzzzzz");
map.put("cc","ssssss");
map.put("dd","qqqqqq");
map.put("ff","gggggggg");
request.setAttribute("map",map);
%>
<f:foreach items="${map}" var="str">${str}<br></f:foreach>
<%--数组 --%>
3、对象数组<br>
<%
Integer[] num={1,2,3,4,5};
request.setAttribute("num",num);
%>
<f:foreach items="${num}" var="str">${str}</f:foreach>
<br>-------------------------------<br/>
4、基本类型数组<br>
<%
int[] number={1,2,3,4,5};
request.setAttribute("number",number);
%>
<f:foreach items="${number}" var="str">${str}</f:foreach>
<%--字符串数组的测试 --%>
<br>----------------------<br/>
5、字符串数组测试<br>
<%
String[] ss={"aaa","bbb","ccc","ddd","eee"};
request.setAttribute("ss",ss);
%>
<f:foreach items="${ss}" var="str">${str}</f:foreach>
二、自定义标签的打包
jar包:标签处理器以及(META-INF)tld文件打成一个jar包
先找到文件的class字节码文件,将字节码所在的包中的文件拷贝出来 然后新建一个META-INF 把tld文件放置进去
打开cmd
jar命令:首先先进入文件夹,进入文件夹后, jar cvf 命名.jar . 完成打包
简单打包方式:
创建一个java项目
将web项目的中的处理器的包拷贝到里面
在项目中新建一个META-INF文件夹将所有tld存放
然后将项目 右键导出 将右边勾选MyEclipse的选项取消
就可以打包成jar文件了
最简单的打包方式。 用压缩工具直接压缩。 注意:文件格式不能错误
Tag处理器的源码:
public void doTag() throws JspException, IOException {
// TODO Auto-generated method stub
//先判定一下是什么类型的
Collection collection=null;
if(items instanceof Map){
Map map=(Map)items;
//两列的集合转换成单列
collection=map.entrySet();
//Collection是set集合或者list集合不再是映射
}else if(items instanceof Collection){
collection=(Collection)items;
//判断对象是否是不是数组的类型
}else if(items instanceof Object[]){
Object[] obj=(Object[])items;
//将指定数组转换成集合对象
collection=Arrays.asList(obj);
//利用反射机制 判断是否是基本类型的数组
}else if(items.getClass().isArray()){
collection=new ArrayList();
int length=Array.getLength(items);
for(int i=0;i<length;i++){
collection.add(Array.get(items, i));
}
}
Iterator it=collection.iterator();
while (it.hasNext()) {
Object obj = it.next();// 元素
this.getJspContext().setAttribute(var, obj);
this.getJspBody().invoke(null);
}
}
1、集合测试<br>
<%
List list=new ArrayList();
list.add("aaaa");
list.add("bbbb");
list.add("cccc");
list.add("dddd");
request.setAttribute("list",list);
%>
<f:foreach items="${list}" var="str">${str}<br></f:foreach>
<br>--------------------------<br>
<%--映射--%>
2、映射测试<br>
<%Map map=new HashMap();
map.put("aa","zhangsan");
map.put("bb","zzzzzz");
map.put("cc","ssssss");
map.put("dd","qqqqqq");
map.put("ff","gggggggg");
request.setAttribute("map",map);
%>
<f:foreach items="${map}" var="str">${str}<br></f:foreach>
<%--数组 --%>
3、对象数组<br>
<%
Integer[] num={1,2,3,4,5};
request.setAttribute("num",num);
%>
<f:foreach items="${num}" var="str">${str}</f:foreach>
<br>-------------------------------<br/>
4、基本类型数组<br>
<%
int[] number={1,2,3,4,5};
request.setAttribute("number",number);
%>
<f:foreach items="${number}" var="str">${str}</f:foreach>
<%--字符串数组的测试 --%>
<br>----------------------<br/>
5、字符串数组测试<br>
<%
String[] ss={"aaa","bbb","ccc","ddd","eee"};
request.setAttribute("ss",ss);
%>
<f:foreach items="${ss}" var="str">${str}</f:foreach>
二、自定义标签的打包
jar包:标签处理器以及(META-INF)tld文件打成一个jar包
先找到文件的class字节码文件,将字节码所在的包中的文件拷贝出来 然后新建一个META-INF 把tld文件放置进去
打开cmd
jar命令:首先先进入文件夹,进入文件夹后, jar cvf 命名.jar . 完成打包
简单打包方式:
创建一个java项目
将web项目的中的处理器的包拷贝到里面
在项目中新建一个META-INF文件夹将所有tld存放
然后将项目 右键导出 将右边勾选MyEclipse的选项取消
就可以打包成jar文件了
最简单的打包方式。 用压缩工具直接压缩。 注意:文件格式不能错误