自定义标签

简介:

<!-- 

自定义标签,就像是其他标签一样,我们声明标签后,然后向标签中传入参数,属性。

好处:引用方便,有公用性,减少页面代码,结构清晰。  -->


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]}"

是在自己项目中获取的值,你的项目中应有这个值。


最后效果是一个下拉列表。

wKioL1hzMj-DR1MyAAAO1guw2Yw241.png-wh_50

所以,凡是项目中的下拉都可以用这个标签了。







      本文转自建波李 51CTO博客,原文链接:http://blog.51cto.com/jianboli/1890398,如需转载请自行联系原作者



相关文章
|
数据可视化
R语言广义线性混合模型GLMMs在生态学中应用可视化2实例合集|附数据代码2
R语言广义线性混合模型GLMMs在生态学中应用可视化2实例合集|附数据代码
|
JavaScript 网络架构
vue | 动态路由刷新空白
解决在vue3中添加动态路由后,刷新页面空白,并且提示没有正确的路径。
420 0
vue | 动态路由刷新空白
Google Earth Engine(GEE)——如何获取指定时间范围的影像值并进行图表展示(指定天数范围内的时序图)
Google Earth Engine(GEE)——如何获取指定时间范围的影像值并进行图表展示(指定天数范围内的时序图)
371 0
|
Cloud Native Java Go
使用Nacos与Spring Boot实现配置管理
使用Nacos与Spring Boot实现配置管理
235 0
|
SQL 存储 算法
ShardingSphere数据分片
坚持是一件比较难的事,坚持并不是自欺欺人的一种自我麻痹和安慰,也不是做给被人的,我觉得,坚持的本质并没有带着过多的功利主义,如果满是功利主义,那么这个坚持并不会长久,也不会有好的收获,坚持应该带着热爱,带着思想,把它当成习惯,但是并不是内卷,而是一种发自内心的喜欢和平实!希望我们都有自己的坚持,坚持写一篇文章,坚持爱一个人,坚持读一本书,坚持走向远方!
222 0
|
Java
springboot添加图片后访问404
今天springboot项目随意添加一张图片(只发现添加图片时访问不了,创建新的html也能马上访问,就是图片有毒!!!),
297 0
|
缓存 前端开发 JavaScript
Web缓存服务——Squid代理服务器应用(上)
正向代理:代替客户端向服务端发送请求。 反向代理:代理服务端,将请求转发给多个服务端。
677 1
Unable to determine application id: com.android.tools.idea.run.ApkProvisionException: ERROR: APK pat
Unable to determine application id: com.android.tools.idea.run.ApkProvisionException: ERROR: APK pat
623 0
|
Java 微服务 Spring
Spring Cloud Alibaba - 15 微服务之间使用Feign实现参数的透传
Spring Cloud Alibaba - 15 微服务之间使用Feign实现参数的透传
295 0