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属性的值来操作这个自定义标签的重复次数了。

  • 测试结果展示:

时间: 2024-10-24 03:05:29

JSP自定义简单标签入门之带有属性的相关文章

Java自定义简单标签实例

Java自定义简单标签可以方便的在页面输出信息,并且对于权限的控制,和对于Jsp标签和servlet代码的分离有着很好的作用   下面将以权限的控制为例自定义一个标签:一.标签类型 复制代码 代码如下: <wxt:per uri="${pageContext.request.contextPath }/privilege/list"></wxt:per> 步骤:1.自定义一个类PerssionTag 继承SimpleTagSupport(自定义标签一般都会继承这

JSP自定义分页标签TAG全过程_JSP编程

首先我们需要在WEB-INF/tld/目录下创建page.tld文件 <?xml version="1.0" encoding="ISO-8859-1"?> <taglib> <tlib-version>1.0</tlib-version> <jsp-version>1.2</jsp-version> <short-name>page</short-name> <u

JSP自定义标签之简单标签入门

在sun官方文档上有下面这样一段话. 官方文档声明 public interface SimpleTag extends JspTag Interface for defining Simple Tag Handlers. Simple Tag Handlers differ from Classic Tag Handlers in that instead of supporting doStartTag() and doEndTag(), the SimpleTag interface pr

Java自定义简单标签实例_java

下面将以权限的控制为例自定义一个标签:一.标签类型 复制代码 代码如下: <wxt:per uri="${pageContext.request.contextPath }/privilege/list"></wxt:per> 步骤:1.自定义一个类PerssionTag 继承SimpleTagSupport(自定义标签一般都会继承这个类) 复制代码 代码如下: package cn.com.liveuc.privilege.tag;import java.io

JSP自定义标签简单入门教程_JSP编程

在sun官方文档上有下面这样一段话. 官方文档声明 public interface SimpleTag extends JspTag Interface for defining Simple Tag Handlers. Simple Tag Handlers differ from Classic Tag Handlers in that instead of supporting doStartTag() and doEndTag(), the SimpleTag interface pr

JSP自定义标签入门学习_JSP编程

本文为大家分享了JSP自定义标签入门学习教程,希望大家喜欢. 1.JSP自定义标签: 自定义标签是用户定义的JSP语言元素.当JSP页面包含一个自定义标签时将被转化为servlet,标签转化为对被 称为tag handler的对象的操作,即当servlet执行时Web container调用那些操作.JSP标签扩展可以让你创建新的标签并且可以直接插入到一个JSP页面. JSP 2.0规范中引入Simple Tag Handlers来编写这些自定义标记.你可以继承SimpleTagSupport类

jsp自定义标签-jsp中怎么自定义一个有onclick这样属性的标签啊?

问题描述 jsp中怎么自定义一个有onclick这样属性的标签啊? 哪位大虾可以告诉菜鸟,怎么在自定义的标签中定义一个可以调用jQuery里面方法的属性哇,就像onclick那种. 解决方案 自定义一个很简单的JSP标签 解决方案二: 正所谓自定义,就是在jsp里面定义一套你的规范的标签,在服务端去根据规则去翻译成html代码,再响应给浏览器解析,你定义的标签,在给浏览器的时候都一样的html,那么问题就来了, 你可以定义你的事件,然后翻译成html的onclick事件就可以啊,这是鄙人的理解.

用jquery获取自定义的标签属性的值简单实例_jquery

如下所示: <tr class="gradeX" role="row" id="1001"> <td>王羲之</td> <td>2016-01-06</td> <td name="phone" style="display:none;">13680130700</td> <td name="pwd"

JSP自定义标签rtexprvalue属性用法实例分析_JSP编程

本文实例讲述了JSP自定义标签rtexprvalue属性.分享给大家供大家参考.具体如下: 其实以前也有写过自定义标签, 但是没有注意到过<rtexprvalue>的用法, 最近这几天又用上自定义标签了, 突然发现<rtexprvalue>的用法是有讲究的. rtexprvalue的全称是 Run-time Expression Value, 它用于表示是否可以使用JSP表达式. 当在<attribute>标签里指定<rtexprvalue>true<