JSP标签库

step1:

  定义一个标签处理类:改类必须实现SimpleTag接口,在实际中是拓展它的子类SimpleTagSupport。复写doTag方法

public class MyTag extends SimpleTagSupport {

@Override
public void doTag() throws JspException, IOException {
JspWriter out = getJspContext().getOut();
out.print("<b>hello</b>");
}

}

step2:

  一旦定义了标签处理类,下一个任务便是向服务器标识这个类,并将其与特定的XML标记名称相关联。这任务是通过一个XML格式的TLD文件来完成的。该文件包含固定的信息(如XML Schema实例声明)、一个任意短的库名称、一段简的描述及一系列标签描述,可以放在WEB-INF下面的目录里

  

<?xml version="1.0"?>
<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>
This exposes JSON util functions from the Struts JSON plugin
</description>

<tlib-version>1.0</tlib-version>

<short-name>mytld</short-name>
<tag>
<description>out put hello</description>
<name>test</name>
<tag-class>cn.donghua.jstl.MyTag</tag-class>
<body-content>empty</body-content>
</tag>

</taglib>

step3:

  jsp文件。引入标签<%@ taglib uri="..."  prefix="..."%>

  

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP ‘tldTest.jsp‘ starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

</head>

<body>
<%@ taglib uri="/WEB-INF/tlds/mytld.tld" prefix="mytest" %>
<mytest:test/>
</body>
</html>

访问输出:hello 

若要为标签库添加属性如<mytest:test attr="value"/>则需要在MyTag中增加属性set方法,如加了length属性则在Mytag有setLength()

 

private int length;

public void setLength(String length) throws IOException{
this.length = Integer.parseInt(length);
JspWriter out = getJspContext().getOut();
out.print(length);
}

tld文件也要添加相应的属性说明:

<tag>
<description>out put hello</description>
<name>test</name>
<tag-class>cn.donghua.jstl.MyTag</tag-class>
<body-content>empty</body-content>
<attribute>
<name>length</name>
<required>false</required>
</attribute>
</tag>

jsp文件

<body>
<%@ taglib uri="/WEB-INF/tlds/mytld.tld" prefix="mytest" %>
<mytest:test length="56"/>
</body>

输出:56

时间: 2024-12-24 00:53:54

JSP标签库的相关文章

通过引入SiteMesh的JSP标签库,解决Freemarker与SiteMesh整合时,自定义SiteMesh标签的问题

不少web项目,都用到了SiteMesh.SiteMesh可以和JSP.Freemarker等模版进行整合,有一定的好处,当然也有其不好的地方.我个人觉得,如果没有必要,不要在项目中引入太多的工具和技术,工具多了,项目开发的速度提高不起来. 以前,主要是用JSP作为视图层,最近主要是用Freemarker,然后配置Freemarker和SiteMesh整合. 项目中,最初的做法如下所示. <html>   <head>  ${head} </head> <body

一篇介绍JSP标签库很详细的文章

2008年12月17日 星期三 上午 10:52 标准的JSP 标记可以调用JavaBeans组件或者执行客户的请求,这大大降低了JSP开发的复杂度和维护量. JSP技术也允许你自定义taglib,其实换句话说,taglib可以看成是对JSP标记的一种扩展,正如xml是对 html的一种扩展一样.taglib通常定义在tag标签库中,这种标签库存放着你自己定义的tag标签.简而言 之,如果使用taglib,那么你可以设计自己的JSP标记!一般来说,自定义tag标签主要用于操作隐藏对象.处理htm

JSP标准标签库

JSP标准标签库 JSP标准标签库(JSP Standard Tag Library,JSTL)是实现Web应用程序中常见的通用功能的定制标签库集,程序员使用JSTL标签来避免在JSP页面中使用脚本. JSTL概述 (1).JSTL英文全称是“JSP  Standard  Tag Library”,即JSP标准标签库之意. (2).JSTL是由JCP(JavaCommnunity Process)指定的标准规范,是一组形如html的标签. (3)JSTL提供了诸如循环.条件.数据库访问.XML处

javaWeb_使用标签库简化jsp

jsp标签库,也叫自定义标签. 应用范围 jsp标签,主要应用于前台页面,在jsp中,如果jsp中存在<% %> 等 java代码,那么对前台开发人员来说,就需要了解 java代码. 如何在开发前台 而且不懂java代码的情况下,合作开发呢? 在前台页面中,大多都是html+css+javascript的代码,突然之间一大堆的java代码,的确让人很为难. 引入标签,则是把一些常用的java代码整理成一些类似于 html中 的<> 的东西.在前台开发人员来说, 看特定几个意思的标签

第六周作业-JSTL标签库

JSP页面作为内嵌java的Html简化了Servlet在控制页面显示的语法,但JSP脚本中的表达式功能不够强大,语法也稍显繁杂,EL(Expression Language)表达式语言的出现能够大大简化JSP页面中的JAVA代码,配合JSTL核心标签库,让JSP更为灵活易用. JSTL(JSP Standard Tag Library,JSP标准标签库)是一个由Apache基金会不断完善的开源JSP标签库. JSTL标签根据其功能一般分为以下五类: 1.核心标签库(Core Tags) 2.格

&lt;转&gt;JSTL标签库的版本

参考 http://www.bubuko.com/infodetail-1077023.html http://janedoneway.iteye.com/blog/1245949 从来没认为这是个问题,不过最近发现网上关于这方面的资料比较乱,现将自己的了解整理在此,以备查阅. ? 开发团队经常使用jstl标签库,开始也没在意,大家都是简单引入jstl.jar和standard.jar,后来发现这两个包也有版本差别,各项目小组用的不同,在jsp中定义也有差别,还会引起冲突和代码不兼容.于是想在网

Java学习(七)标准标签库JSTL

一.了解JSTL 1.什么是JSTL? JSTL(JSP Standard Tag Library,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的.JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomcat 4.x.在JSP 2.0中也是作为标准支持的. JSTL 1.0 发布于 2002 年 6 月,由四个定制标记库(core.format.xml 和 sql)和一对通用标记库验证器(ScriptFreeTLV

shiro jsp 标签

spring-shiro.xml 1 2 3 /admin/repairType/index = roles["ROLE_ADMIN"] /admin/user=roles["ROLE_ADMIN"] /admin/complaint/list= roles["ROLE_SERVICE,ROLE_ADMIN"] jsp页面: 1 2 3 4 5 6 7 8 9 <shiro:hasRole name="ROLE_ADMIN&quo

Jstl之核心标签库与格式标签库使用

JSTL(JSP Standard Tag Library.JSP标准标签库)是一个不断完好的开放源码的JSP标签库.是由apache的jakarta小组来维护的.JSTL仅仅能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomcat 4.x.在JSP 2.0中也是作为标准支持的. JSTL 1.0 公布于 2002 年 6 月,由四个定制标记库(core.format.xml 和 sql)和一对通用标记库验证器(ScriptFreeTLV 和 PermittedTaglibsT