<!--
自定义标签,就像是其他标签一样,我们声明标签后,然后向标签中传入参数,属性。
好处:引用方便,有公用性,减少页面代码,结构清晰。 -->
1
2
3
4
|
<h4>这里介绍一下自定义标签,自定义标签分tag和tld结尾的。<br>
tag结尾的其实就是将我们的jsp页面代码写到了tag中。这样在jsp中就可以代码更简洁。<br>
同时如果你做好了封装,也可以将tag做成一个公共的jsp标签代码。这样很多地方都可以复用了。
tag便签只需要两步。<br>
|
这里讲两个简单实例:
实例一:
1
2
3
4
5
6
7
8
9
10
11
|
第一:在WEBINF下面建立tags包。里面写个hello.tag
内容为:
<%@ tag pageEncoding=
"UTF-8"
%>
hello.tag.自定义标签测试
IP:<%= request.getRemoteAddr() %>
第二步:
jsp中引用,然后使用。
<%@ taglib prefix=
"test"
tagdir=
"/WEB-INF/tags/"
%>
< test:hello />
|
实例二:
在jsp页面中引入命名空间:
1
2
3
4
5
6
|
<%@ taglib prefix=
"sccl"
tagdir=
"/WEB-INF/tags"
%>
<sccl:selectBizCodes3 id=
"status"
category=
"USER_STATUS"
selected=
"${user.status}"
></sccl:selectBizCodes3>
<br />
<br />
|
1
|
在WEBINF下面建立tags包。里面写个selectBizCodes3.tag
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
<!-- 自定义标签,就像是其他标签一样,我们声明标签后,然后向标签中传入参数,属性。好处:引用方便,有公用性,减少页面代码,结构清晰 -->
<!-- 引入标签库 -->
<%@ tag pageEncoding=
"UTF-8"
%>
<%@ taglib prefix=
"c"
uri=
"http://java.sun.com/jsp/jstl/core"
%>
<%@ taglib prefix=
"fn"
uri=
"http://java.sun.com/jsp/jstl/functions"
%>
<!-- 接收参数 -->
<%@ attribute name=
"category"
required=
"true"
%>
<%@ attribute name=
"id"
required=
"true"
%>
<%@ attribute name=
"selected"
%>
<!-- 参数处理 -->
<c:set var=
"htmlId"
value=
"category"
/>
<c:
if
test=
"${not empty id}"
>
<c:set var=
"htmlId"
value=
"${id}"
/>
</c:
if
>
<!-- 嵌入页面的代码 -->
<select id=
"${htmlId}"
name=
"${htmlId}"
>
<option value=
""
>请选择</option>
<c:forEach var=
"bizCodeV"
items=
"${applicationScope.bizCodes[category]}"
>
<option value=
"${bizCodeV.key}"
<c:
if
test=
"${bizCodeV.key==selected}"
>selected</c:
if
> >${bizCodeV.value}</option>
</c:forEach>
</select>
|
说明:标签里面的属性名是自己定义的。
1
|
items=
"${applicationScope.bizCodes[category]}"
|
是在自己项目中获取的值,你的项目中应有这个值。
最后效果是一个下拉列表。
所以,凡是项目中的下拉都可以用这个标签了。
本文转自建波李 51CTO博客,原文链接:http://blog.51cto.com/jianboli/1890398,如需转载请自行联系原作者