<!--
自定义标签,就像是其他标签一样,我们声明标签后,然后向标签中传入参数,属性。
好处:引用方便,有公用性,减少页面代码,结构清晰。 -->
<h4>这里介绍一下自定义标签,自定义标签分tag和tld结尾的。<br> tag结尾的其实就是将我们的jsp页面代码写到了tag中。这样在jsp中就可以代码更简洁。<br> 同时如果你做好了封装,也可以将tag做成一个公共的jsp标签代码。这样很多地方都可以复用了。 tag便签只需要两步。<br>
这里讲两个简单实例:
实例一:
第一:在WEBINF下面建立tags包。里面写个hello.tag 内容为: <%@ tag pageEncoding="UTF-8" %> hello.tag.自定义标签测试 IP:<%= request.getRemoteAddr() %> 第二步: jsp中引用,然后使用。 <%@ taglib prefix="test" tagdir="/WEB-INF/tags/" %> < test:hello />
实例二:
在jsp页面中引入命名空间:
<%@ taglib prefix="sccl" tagdir="/WEB-INF/tags"%>
<sccl:selectBizCodes3 id="status" category="USER_STATUS" selected="${user.status}"></sccl:selectBizCodes3>
<br />
<br />在WEBINF下面建立tags包。里面写个selectBizCodes3.tag
<!-- 自定义标签,就像是其他标签一样,我们声明标签后,然后向标签中传入参数,属性。好处:引用方便,有公用性,减少页面代码,结构清晰 -->
<!-- 引入标签库 -->
<%@ 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>说明:标签里面的属性名是自己定义的。
items="${applicationScope.bizCodes[category]}"是在自己项目中获取的值,你的项目中应有这个值。
最后效果是一个下拉列表。
所以,凡是项目中的下拉都可以用这个标签了。
本文出自 “JianBo” 博客,请务必保留此出处http://jianboli.blog.51cto.com/12075002/1890398
原文:http://jianboli.blog.51cto.com/12075002/1890398