自定义标签jsp2格式

在写自定义标签时候是不是感觉很烦啊,其实人家也是这样认为的,于是我们的jsp新的标准对标签进行了更改,使我们用起来更简单。到底哪里简单呢?看看代码再说咯:

还是老规矩,先上一个标签的逻辑类:

1.

package com.java.tag;

import java.io.IOException;
import java.util.Iterator;
import java.util.List;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.SimpleTagSupport;
import javax.servlet.jsp.tagext.TagSupport;

public class IterateSimpleTag extends SimpleTagSupport{

/**
*
*/
private static final long serialVersionUID = 1L;

private String var;
private String items;

public String getVar() {
return var;
}

public void setVar(String var) {
this.var = var;
}

public String getItems() {
return items;
}

public void setItems(String items) {
this.items = items;
}


@Override
public void doTag() throws JspException, IOException {
Object value=this.getJspContext().getAttribute(items);//直接名为items的集合
if(value!=null && value instanceof List){//如果集合为List类型
Iterator iter=((List)value).iterator();//那么将集合转为iterator
while(iter.hasNext()){//循环iterator
this.getJspContext().setAttribute(var, iter.next());//直接把iterator的元素塞给var
this.getJspBody().invoke(null); // 响应页面---var显示出来
}
}
}

}

2.配置我们的描述文件吧~

<?xml version="1.0" encoding="UTF-8" ?>

<taglib xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
version="2.1">
<tlib-version>1.0</tlib-version>
<short-name>javaTag</short-name>

<tag>
<name>iterate2</name>
<tag-class>
com.java.tag.IterateSimpleTag
</tag-class>

<!--此处必须这样写--->
<body-content>scriptless</body-content>
<attribute>
<name>var</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>items</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>

posted @ 2017-02-23 23:19  小拽A  阅读(181)  评论(0编辑  收藏  举报