JSP——JSTL定制标签 - 递归标签显示属性结构
编写定制标签分为三个步骤:编写标签处理器、配置标签、使用标签。
1.标签处理器
标签处理器和标签是一一对应的关系
package com.oolong.utils.customtags;import java.io.IOException; import java.util.List;import javax.servlet.jsp.JspContext; import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.tagext.SimpleTagSupport;import com.oolong.personal.model.KLPointModel; import com.oolong.utils.tree.TreeModel;public class ShowTreeTag extends SimpleTagSupport {private List<TreeModel<KLPointModel>> items;public void setItems(List<TreeModel<KLPointModel>> items) {this.items = items;}@Overridepublic void doTag() throws JspException, IOException {JspContext jspContext = getJspContext();JspWriter writer = jspContext.getOut();writer.print(generateHTML(items));}private String generateHTML(List<TreeModel<KLPointModel>> items) {StringBuilder sb = new StringBuilder();sb.append("<ul>");for(TreeModel<KLPointModel> treeModel : items) {sb.append("<li value='");sb.append(treeModel.getNode().getWid());sb.append("' >");sb.append(treeModel.getNode().getName());if (treeModel.getChildren() != null && treeModel.getChildren().size() > 0) {sb.append(generateHTML(treeModel.getChildren()));}sb.append("</li>");}sb.append("</ul>");return sb.toString();}}
对于需要在标签中使用的属性,此处给定这个属性getter和setter方法即可,程序在执行时,这些属性会被自动注入:
private List<TreeModel<KLPointModel>> items;public void setItems(List<TreeModel<KLPointModel>> items) {this.items = items; }
2.配置标签
此处配置标签的名称、属性以及对应的标签处理器等
<?xml version="1.0" encoding="UTF-8"?> <taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_1.xsd"version="2.1"><description>showTreeTag</description><tlib-version>1.0</tlib-version><short-name>ShowTreeTag</short-name><tag><name>showTreeTag</name><tag-class>com.oolong.utils.customtags.ShowTreeTag</tag-class><body-content>scriptless</body-content><attribute><name>items</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute></tag> </taglib>
配置标签对应的解析类:
<tag-class>com.oolong.utils.customtags.ShowTreeTag</tag-class>
配置标签属性可以介绍解析对象:
<rtexprvalue>true</rtexprvalue>
3.使用标签
这个标签的作用是迭代的显示一个树形结构
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="f" uri="http://java.sun.com/jsp/jstl/fmt"%> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> <%@ taglib uri="/WEB-INF/ShowTreeTag.tld" prefix="Oolong"%> <div class="col-sm-5 col-md-4 sidebar" id="treepanel"><div class="easy-tree"><c:forEach items="${pointTree}" var="item"><ul><li value="${item.domain.wid}">${item.domain.name}<c:if test="${item.children != null && fn:length(item.children) > 0}"><Oolong:showTreeTag items="${item.children}" /></c:if></li></ul></c:forEach> </div></div>
在头部引入自定义标签的配置文件:
<%@ taglib uri="/WEB-INF/ShowTreeTag.tld" prefix="Oolong"%>
使用标签:
<Oolong:showTreeTag items="${item.children}" />
如果标签的属性值想要像这里这样接受对象作为参数,那就需要在配置标签时设置可以解析对象
转载于:https://www.cnblogs.com/weilu2/p/jsp_jstl_customing_tag.html
JSP——JSTL定制标签 - 递归标签显示属性结构相关推荐
- 让你认清楚JSP中的所有东西(java/JSP/EL/OGNL/JSTL/c标签/s标签/HTML/javascript/CSS)
先来解释名词: java:jsp的基础,服务器端语言. javascript:运行在浏览器里的客户端脚本语言,目的是让网页更加生动活泼功能强大. HTML(Hypertext Markup Langu ...
- (forEach url out set catch 等)javaweb中JSTL的Core 核心标签库知识点
JSTL 标签库的基本知识复习 导读{ 1]什么是 JSTL 标签库 ? [2]如何在我们的项目中使用JSTL ? [3]介绍Core 核心标签库 [3.1]URL标签 作用: 可以在JSP页面中构 ...
- JSP~~JSTL~~XML标签库
XML 提供了非常灵活的方式来表示结构化的数据,可以创建自己的标记来识别数据,不仅仅人可以看懂,而且计算机也可以读懂.并且 XML 可以在不兼容的系统之间进行数据的交换,所以 XML 必定将称为最普遍 ...
- JSP JSTL标签库基本使用
下载如下库,把下面两个jar: 拷贝到如下目录: 把如下tld文件, 拷贝到如下目录: 做一个jsp: <%@ page language="java" contentTyp ...
- JSP JSTL标签
JSP 标准标签库(JSTL) JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签, ...
- jsp: jstl标签库 uri标签
与 URL 相关的标签主要是用来将其他文件包含进来,或者提供页面之间的重定位以及 URL 地址的 生成.参数的输出等等.一般包括如下几个标签 <c:import>标签:与传统 JSP 页面 ...
- 【郭林专刊】JSP中JSTL提供的函数标签EL表达式操作字符串的方法
首先在jsp页面导入标签 <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions&qu ...
- MyEclipse导入主题文件epf后xml及jsp等页面中点击标签之后显示灰白
MyEclipse导入主题文件epf后xml及jsp等页面中点击标签之后显示灰白,症状如下: 解决方案如下:
- JSP→JSTL标准标签库简介与环境搭建、JSTL助手EL表达式EL隐式对象、标签→out、set、if、多选择配合、foreach、redirect、格式化、JSTL函数标签、自定义标签、标签类架构
JSTL标准标签库简介与环境搭建 EL表达式与EL隐式对象 out标签 set标签 remove标签 catch标签 if标签 choose.when.otherwise配合标签 foreach标签 ...
最新文章
- C#实现简体繁体转换代码示例
- C语言 vprintf 函数和 printf 函数区别 - C语言零基础入门教程
- 高等组合学笔记(十四):Lagrange反演公式
- 2020年Java讲课笔记目录
- Linux中用yum安装MySQL方法
- linux console 下载 jdk
- 2022 年移动应用开发终极指南
- matlab电力模块,基于MATLAB中电力系统模块集(PSB的电力系统仿真研究
- java电商项目简历_一文解析从写简历,到面试、谈薪酬技巧和防坑指南
- DOTCPP:有关1125心得
- 使用pytorch进行深度学习网络模型训练,实现车型识别
- 对Word文档中的指定内容进行替换
- opencv获取灰度图像的像素值
- Linux使用shell定时任务实现ffmpeg视频转码和截图
- codeforces 711 C. Coloring Trees (dp)
- 【SpringCloud】微服务笔记
- IOT网关开发受难记-(一) 2022/05/13
- python求解一阶常微分方程
- Calculate函数内外筛选器的交互过程
- 关于跨区的3种解决办法