JSP自定义简单标签入门之带有属性
上面写的那个简单标签来控制页面中标签内容的重复次数是固定的,这就是权限“写死了”,这是非常不好的行为,因为其灵活性太差。所以下面就介绍一种使用属性来控制标签内容输出次数的方法。
准备工作
- 创建实现了SimpleTag接口的实现类(或者是继承了SimpleTagSupport类的子类)
- 在类中为相应的属性字段添加setter方法,注意字段名称一定要一致。否则会出错滴
- 在tld文件中进行相关约束项的声明,不同于不带属性的简单标签的声明方式,这里多了一个attribute子标签,内有name,required(此属性是否必须存在),rtexprvalue(是否可以使用表达式,为了与EL表达式配合,一般会为true),
- 最后就是在jsp页面中进行taglib命令的声明,以及标签的使用了。
小案例分析与实现
- 第一步:创建类,字段setter设置:
package web.simpletag;
import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.SimpleTagSupport;
/**
 * 通过属性来控制标签体的执行次数
 * @author Summer
 *
 */
public class WithAttribute extends SimpleTagSupport {
    private int count;//用于操作maniplate次数的字段
    public void setCount(int count) {
        this.count = count;
    }
    @Override
    public void doTag() throws JspException, IOException {
        for(int i=0;i<count; i++){
            this.getJspBody().invoke(null);
        }
    }
}
- 第二步:tld声明的书写:
    <!-- 带有属性的的自定义简单标签 -->
    <tag>
        <name>WithAttribute</name>
        <tag-class>web.simpletag.WithAttribute</tag-class>
        <body-content>scriptless</body-content>
        <attribute>
            <name>count</name>
            <required>true</required>
            <!-- 属性值是否为表达式?一般是EL表达式 -->
            <rtexprvalue>true</rtexprvalue>
        </attribute>
    </tag>
- 第三步:jsp页面的生命与使用
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib uri="/simplesummer" prefix="summer"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>使用属性来控制标签内容的输出次数的自定义简单标签的测试页面</title>
</head>
<body>
    <summer:WithAttribute count="7">
        I am Summer !!!<BR>
    </summer:WithAttribute>
</body>
</html>- 在jsp页面中,我们就可以手动的设置count属性的值来操作这个自定义标签的重复次数了。
- 测试结果展示: 
JSP自定义简单标签入门之带有属性的更多相关文章
- Java自定义简单标签
		Java自定义简单标签可以方便的在页面输出信息,并且对于权限的控制,和对于Jsp标签和servlet代码的分离有着很好的作用. 下面将以权限的控制为例自定义一个标签: 一.标签类型 <wxt: ... 
- Jsp 自定义tag标签
		1转自:https://blog.csdn.net/yusimiao/article/details/46835617 Jsp自定义tag标签 自定义tag标签的好处 程序员可以自定一些特定功能的标记 ... 
- JSP自定义标签之简单标签入门
		在sun官方文档上有下面这样一段话. 官方文档声明 public interface SimpleTag extends JspTag Interface for defining Simple Ta ... 
- JSP自己定义标签入门实例具体解释
		JSP自己定义标签主要能用到的两个包 javax.servlet.jsp.*;javax.servlet.jsp.tagext.*; 自己定义标签<userInfo:showUserInfo/& ... 
- JSP自定义业务标签
		自定义标签: package cn.hv.tag; import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspWriter; ... 
- 潭州课堂25班:Ph201805201 django框架 第五课  自定义简单标签,包含标签,模型类创建,梳理类创建 (课堂笔记)
		自定义标签同自定义过渡器一样,要创建文件,在配置文件中以APP方法注册,对方法进注册,在 html 文件中引入,.. 由模板传参 在 在配置文件中改时区: 由视图函数传参 包含标签: 当有这种重复的代 ... 
- JSP自定义标签——简单标签(2)
		在前一篇博客中,我们已经学习了自定义的简单标签的基本使用方法,这一篇我们来学习如何在简单标签中添加标签属性.对自定义标签添加一些属性,可以使我们的标签功能更加灵活和复用.例如前一篇博客使用简单标签来对 ... 
- (十三)自定义JSTL标签
		前面的博客,我们讲过了 自定义 el函数 : 讲一个 自定义标签技术 : 目录 自定义标签 快速入门:使用标签输出客户机IP 关于标签处理器类的方法 自定义标签功能扩展 传统标签 简单标签 配置简单标 ... 
- JSP带有属性的自定义标签
		新建HelloWelTag类 如何添加jsp-api.jar包 HelloWelTag类详细代码```package bid.zhazhapan.fims.tag;import java.io.IOE ... 
随机推荐
- Python Django缓存,信号,序列化,文件上传,Ajax登录和csrf_token验证
			本节内容 models操作 Django的缓存 请求方式 序列化 Form 配合Ajax实现登录认证 上传文件 Ajax csrf_token验证方式 1 models操作 单表查询: curd(增 ... 
- 分区工具PQ
			http://www.disktool.cn/jiaocheng/resize-partition.html 
- MySQL使用判断
			1.case语法 在第一个方案的返回结果中, value=compare-value.而第二个方案的返回结果是第一种情况的真实结果.如果没有匹配的结果值,则返回结果为ELSE后的结果,如果没有ELSE ... 
- 216. Combination Sum III(medium, backtrack, 本类问题做的最快的一次)
			Find all possible combinations of k numbers that add up to a number n, given that only numbers from ... 
- Servlet 执行流程 生命周期 ServletConfig 线程安全
			Day34 servlet 三.如何使用Servlet 1.继承GenericServlet类(通用) (1)GenericServlet类有一个关键的设计,定义了一个私有的ServletConfig ... 
- Linux 管理软件
			公司的openfire先前运行在windows上的,但由于在windows上openfire内存机制问题,最多只能占用2GB内存,且时间稍微长久一些就会自动挂掉,用户无法登陆和连接,因此迁移到了Cen ... 
- RandomAccessFile&IO流&排序&方法论
			RandomAccessFile&IO流&排序&方法论 我们总觉得历史是极其遥远的东西,与我们并无关联,又觉得历史隐藏在图书馆的旧书之中. 然而,我们每个人都有真真切切的历史. ... 
- ACM 排列2
			Ray又对数字的列产生了兴趣: 现有四张卡片,用这四张卡片能排列出很多不同的4位数,要求按从小到大的顺序输出这些4位数. Input每组数据占一行,代表四张卡片上的数字(0<=数字<=9 ... 
- CNN在中文文本分类的应用
			深度学习近一段时间以来在图像处理和NLP任务上都取得了不俗的成绩.通常,图像处理的任务是借助CNN来完成的,其特有的卷积.池化结构能够提取图像中各种不同程度的纹理.结构,并最终结合全连接网络实现信息的 ... 
- 在一维坐标轴上有n个区间段,求重合区间最长的两个区间段。
			//重叠区间数 #define N 2 typedef struct arrange { int x; int y; } Arrange; //先按左边界排序,若相等再按右边界排序(升序) int c ... 
