文档章节

自定义标签属性的使用

肥猫钓鱼
 肥猫钓鱼
发布于 2014/11/18 14:46
字数 376
阅读 15
收藏 0

自定义标签的属性的使用demo 1.写一个简单的自定义标签类,里面有一个permission变量,即作为自定义标签的属性 package test.tag;

import java.io.IOException;

import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.tagext.TagSupport;

public class MyTag extends TagSupport{

/**
 * 
 */
private static final long serialVersionUID = 1L;
private String permission;

@Override
public int doStartTag() throws JspException {
	JspWriter writer = pageContext.getOut();
	if(this.permission!=null&&!this.permission.equals("")){
		if(this.permission.equals("admin.view")){
			return EVAL_BODY_INCLUDE;
		}else{
			try {
				writer.println("没有该权限");
			} catch (IOException e) {
				e.printStackTrace();
			}
			return SKIP_BODY;
		}
	}else{
		try {
			writer.println("没有该权限");
		} catch (IOException e) {
			e.printStackTrace();
		}
		return SKIP_BODY;
	}
}

public String getPermission() {
	return permission;
}

public void setPermission(String permission) {
	this.permission = permission;
}

} 2.配置tld文件

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
 "web-jsptaglibrary_1_2.dtd" >  
<taglib>  
  <tlibversion>tlibversion</tlibversion>  <!-- 你自定义标签的版本数 -->  
  <jsp-version>1.2</jsp-version>  <!-- 指定你的JSP版本,扩张标签是在JSP1.2之后兼容的 -->  
  <shortname>shortname</shortname> <!-- 标签的简写 -->  
  <tag>  
    <name>tags</name>  <!-- 标签名字 -->  
    <tagclass>test.tag.MyTag</tagclass>  <!-- 指定你的标签的类 -->  
        <attribute>
        	<name>permission</name> <!-- 属性名 -->
        	<required>false</required> <!-- 是否此属性名是必须的 -->
        	<rtexprvalue>true</rtexprvalue> <!-- 属性是否可以在jsp运行使其动态产生 -->
        	<type>java.lang.String</type>
        </attribute>
  </tag>  
</taglib> 

3.配置web.xml的jsp-config

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <jsp-config> <taglib> <taglib-uri>TestTagUri</taglib-uri> <taglib-location>WEB-INF/testTag.tld</taglib-location> </taglib> </jsp-config> </web-app>

4.创建一个jsp页面,注意自定义标签的属性,如果permission属性为admin.view那么打印出不同的东西,记得载入标签库 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ taglib uri="/WEB-INF/testTag.tld" prefix="out"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html> <head></head>

<body> <out:tags permission="admin.view"> <a>你有admin权限</a> </out:tags> </body> </html>

© 著作权归作者所有

共有 人打赏支持
肥猫钓鱼
粉丝 1
博文 52
码字总数 9287
作品 0
深圳
程序员
Spring自定义标签解析与实现

在Spring Bean注册解析(一)和Spring Bean注册解析(二)中我们讲到,Spring在解析xml文件中的标签的时候会区分当前的标签是四种基本标签(import、alias、bean和beans)还是自定义标签,如果是...

张旭峰
05/20
0
0
AngularJS —— 自定义指令

如何自定义指令:   Angular是基于模块的框架,因此上来肯定要创建一个自己的模块: var myAppModule = angular.module("myApp",[]);   然后在此模块基础上创建指令directive myAppModu...

孟飞阳
2016/12/11
5
0
JSP自定义标签基础

自定义标签:就是程序员定义的一宗好难过JSP标签,这种标签把那些信息显示逻辑封装在一个单独的Java类中,通过一个xml文件来描述它的使用。当页面中需要使用类似的显示逻辑时,就可以在页面中...

晨曦之光
2012/05/16
125
0
django为Form生成的label标签添加class

使用Form生成html标签的时候,虽然提供了widget的方法可以自定义标签的要是,但是只能给生成的input标签添加样式,对于生成的label标签无法添加样式。而很多场景下需要为label和input都添加c...

骑士救兵
05/25
0
0
Riot - 你的下一个框架

前端,你是文艺界的程序员 我为什么要用Riot  优点明显,体积小,加载快,继承了react,Polymer等框架的优势,并简化他们,主要从以下几个方面考虑: 1. 自定义标签。  Riot 在所有浏览器上...

果汁凉茶丶
2017/11/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

微信小程序开发系列六:微信框架API的调用

微信小程序开发系列教程 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 微信小程序开发系列二:微信小程序的视图设计 微信小程序开发系列三:微信小程序的调试方法 微信小程序开发...

JerryWang_SAP
33分钟前
1
0
5 个用 Python 编写 web 爬虫的方法

大家在读爬虫系列的帖子时常常问我怎样写出不阻塞的爬虫,这很难,但可行。通过实现一些小策略可以让你的网页爬虫活得更久。那么今天我就将和大家讨论这方面的话题。 我刚整理了一套2018最新...

糖宝lsh
34分钟前
1
0
docker安装redis、mongodb、mysql等

一、启动docker服务,设置镜像: systemctl start dockervi /etc/docker/daemon.json{ "registry-mirrors": ["https://registry.docker-cn.com"]} 二、下拉镜像: 在镜像中心h...

狼王黄师傅
今天
5
0
deepin系统使用deepin-wine安装exe程序

deepin自带原生deepin-wine使用命令如下: deepin-wine QQBrowser.exedeepin-wine QQMusicSetup.exe 默认安装的快捷方式位置: /root/.wine/drive_c/'Program Files'/Tencent/QQBrowser/......

临江仙卜算子
今天
4
0
快速get到学习Linux操作系统的点

快速get到学习Linux操作系统的点 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。Linux能够运行主要的UNIX工具软件...

linuxCool
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部