一个简单的带有属性标签的tld标签

来源:互联网 发布:c#旅游系统免费源码 编辑:程序博客网 时间:2024/06/07 12:54

<?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     http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"    version="2.0"><description>简单的 标签 </description><tlib-version>1.0</tlib-version><short-name>gxd</short-name><uri>http://www.gxd.org/55</uri> <!-- 设置tld的引用链接,自定义 --><tag><name>bbs</name><!-- 设置标签的名字 --><tag-class>com.tx.tag.Flag</tag-class><body-content>scriptless</body-content><attribute><name>test</name><required>false</required><!-- 属性是否为必须 --><rtexprvalue>true</rtexprvalue> <!-- 属性是否支持el表达式 --></attribute></tag></taglib>


首先创建一个tld的文件 .

package com.tx.tag;import java.io.IOException;import javax.servlet.jsp.JspException;import javax.servlet.jsp.tagext.SimpleTagSupport;public class Flag extends SimpleTagSupport {private boolean test;public boolean isTest() {return test;}public void setTest(boolean test) {this.test = test;}@Overridepublic void doTag() throws JspException, IOException {if(test) {this.getJspBody().invoke(this.getJspContext().getOut());}}}

创建一个flag.java类继承SimpleTagSupport,我们写的属性test给它一个get和set方法,再通过doTag()方法,判断t从web页面传回的test

这样我们的test可以判断是否显示标签里的内容了;

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@ taglib prefix="ccs" uri="http://www.gxd.org/55" %> <!--标签名自己定义,引入 自己定义的tld链接--><!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>Insert title here</title></head><body><% request.setAttribute("name", "张三 ");//设置一个name属性%><ccs:bbs test="${not empty name}">asdfasdf</ccs:bbs> <!--先通过el判断name是否为空,在条用我们刚才写的代码决定是否要显示标签里的内容--></body></html>

最后创建一个jsp页面 

最终运行结果就是我们标签里的字符.