先是tag(jsp模式编写)
在WEB-INF/tags目录下建立一个 xxx.tag
内容:
%'> 防止出现乱码,设置编码
引入其他(jstl)标签
required="true"%'> 定义属性(有个id属性),required表示必须输入
name="disabled"%'> 定义属性(有个disable属性),
value="${id}"/'> id属性的值设为页面传来${id}的值
value="disabled"/'> disable属性的值设为disable
}'>
value="1"'>请选择1 (可以自己写c:foreach)
value="2"'>请选择2
...........
tag完成
注:(以下来自网上)
这里要注意tag文件只能放在如下位置:
1.WEB-INF/tags
2.WEB-INF/tags的子目录
3.WEB-INF/lib中jar包的META-INF/tags
4.WEB-INF/lib中jar包的META-INF/tags下的子目录
5.jar包中的tag文件需要tld
添加jstl.jar与standard.jar到WEB-INF/lib目录,还有一点就是上面标红的部分:不要使用 http://java.sun.com/jstl/core这个url,否则会报foreach中的item属性有问题 【这个好像没问题,不知道为什么这么说】
使用:
在jsp中,开头添加如下
tagdir="/WEB-INF/tags" %'>
jsp中使用方式即: (因为我的头名字为my,tag文件名为xxx,注意紫色)
-----------------------------------------------------------
再是tld(java编写方式)
编写一个实现Tag接口(现有各种tag接口可以实现或继承,这里选用一个)的Java类,并覆盖doStartTag方法,把jsp页面中的java代码写到doStartTag方法中。编写标签库描述符(tld)文件,在tld文件中对自定义标签进行描述。完成以上操作,即可在JSP页面中导入和使用自定义标签。
public
class XXXTag extends
TagSupport{
private String a=
null;
private String b=
null;
.......(设置属性,以及get、set方法)
JspWriter out =
this.pageContext.getOut();
StringBuffer sf = new
StringBuffer();
@Overridepublic int doStartTag() throws JspException
{
try {
sf.append(""); (append标签什么的就开始啦)
out.print(sf.toString()); (标签拼完后输出)}
catch (IOException e) {
e.printStackTrace();
}
return super.doEndTag();
}
}
编写tld文件,在WEB-INF目录下创建test.tld,内容如下:
Library 1.1//EN"
"http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"'>
1.2
1.1
myLib
http://struts.apache.org/tags-html
xxx (标签对应的名称 )
cn.common.xxx.XXXTag
(标签对应的类的路径 )
empty
a (
a属性 ,上面get、set的内容)
true (是否必须项 )
true
接下来就是最后一步注册到web.xml。
web.xml的表现中添加标签即可,如下:
test ( 对应的uri在jsp中声明的需要用到 )
/WEB-INF/test.tld ( 对应标签描述文件所在的位置 )
在jsp中使用,开头添加如下
prefix="my"%>
jsp中使用方式即: (因为我的头名字为my,tag文件名为xxx,注意紫色)
--------------------------------------
PS:此博大多摘自网上,先做备份,供有机会使用。含自己一点总结。