Jsp:taglib实现
web应用的结构:
web.xml
classes diegoyun OutputTag.class
WEB-INF src diegoyun OutputTag.java
mytag tlds diego.tld
tag.jsp
细节:
web.xml:
1 <?xml version="1.0" encoding="GBK"?>
2 <web-app xmlns="http://java.sun.com/xml/ns/javaee"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
5 http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
6 version="3.0">
7 </web-app>
OutputTag.java:
1 package diegoyun;
2 import javax.servlet.jsp.JspException;
3 import javax.servlet.jsp.JspWriter;
4 import javax.servlet.jsp.tagext.TagSupport;
5
6 public class OutputTag extends TagSupport
7 {
8 private String name=null;
9 public void setName(String name)
10 {
11 this.name = name;
12 }
13
14 public int doStartTag() throws JspException{
15 try
16 {
17 JspWriter out = pageContext.getOut();
18 out.print("Hello! " + name);
19 }
20 catch (Exception e)
21 {
22 throw new JspException(e);
23 }
24 return EVAL_PAGE;
25 }
26 }
diego.tld:
1 <?xml version="1.0" encoding="GBK" ?>
2
3 <taglib xmlns="http://java.sun.com/xml/ns/j2ee"
4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd"
6 version="2.0">
7 <tlib-version>1.0</tlib-version>
8 <short-name>diego</short-name>
9 <!--OutputTag-->
10 <tag>
11 <name>out</name>
12 <tag-class>diegoyun.OutputTag</tag-class>
13 <body-content>empty</body-content>
14 <attribute>
15 <name>name</name>
16 <required>false</required>
17 <rtexprvalue>false</rtexprvalue>
18 </attribute>
19 </tag>
20 </taglib>
tag.jsp:
1 <%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>
2
3 <%@ taglib uri="/WEB-INF/tlds/diego.tld" prefix="diego"%>
4 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
5 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
6 <html xmlns="http://www.w3.org/1999/xhtml">
7 <body>
8 Test Tag:
9 <diego:out name="diegoyun"/>
10 </body>
11 </html>
Jsp:taglib实现的更多相关文章
- [JSP]自定义标签库taglib
自定义标签的步骤 自定义标签的步骤大概有三步: 1.继承javax.servlet.jsp.tagext.*下提供的几个标签类,如Tag.TagSupport.BodyTagSupport.Simpl ...
- 用servlet和jsp做探索数据库
1.建一个web文件,在里面分三层,分别是实体层:DAO层,DAO层里面包含BaseDAO(数据访问层)和DAO层:还有一个servlet层,处理数据逻辑层! 一.实体层,建立两个实体,一个membe ...
- JSP自定义标签之Hello Costom tag小例子
1.项目结构 2.实现自定义tag所需依赖 <dependency> <groupId>javax.servlet</groupId> <artifactId ...
- JavaWeb学习之什么JSP、JSP是如何工作的、JSP语言(各种指令和九大内置对象)、EL表达式简单使用(5)
1.什么JSP * servlet:java编写的处理动态web的技术 * 特点:Java代码中嵌套html代码 * jsp * 特点:HTMl代码中嵌套java代码 * %tomcat%/conf/ ...
- JSP页面以及简单的指令
JSP(Java Server Pages)是指: 在HTML中嵌入Java脚本语言 由应用服务器中的JSP引擎来编译和执行嵌入的Java脚本语言命令 然后将生成的整个页面信息返回给客户端 页 ...
- 解读JSP的解析过程
解读JSP的解析过程 互联网上,这方面的资料实在太少了,故把自己研究的一些结果公布出来. 首先,问大家几个问题,看大家能不能回答出来,或者在网上能不能找到答案: 1.page.include.tagl ...
- servlet&jsp高级:第四部分
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- Spring boot 整合jsp和tiles模板
首先贴上我的pox.xml文件,有详细的支持注释说明 <?xml version="1.0" encoding="UTF-8"?> <proj ...
- jsp分页技术
1.以下为分页类: import java.io.Serializable; import java.util.List; import org.apache.commons.lang.bui ...
随机推荐
- 简单配置nginx反向代理,实现跨域请求
简单配置nginx去做反向代理,实现跨域请求 简单介绍nginx的nginx.conf最核心的配置,去做反向代理,实现跨域请求. 更多详细配置,参考nginx官方文档 先介绍几个nginx命令 打开n ...
- 随机数种子(random seed)
在科学技术和机器学习等其他算法相关任务中,我们经常需要用到随机数,为了把握随机数的生成特性,从随机数的随机无序中获得确定和秩序.我们可以利用随机数种子(random seed)来实现这一目标,随机数种 ...
- WLS中Linux与Windows间的环境共享
Reference 更多cmd.exe帮助参考 (cmd_helps)[https://ss64.com/nt/cmd.html] (WSL备份,windows Docker安装)[https://w ...
- 基于Gin+Gorm框架搭建MVC模式的Go语言后端系统
文/朱季谦 环境准备:安装Gin与Gorm 本文搭建准备环境:Gin+Gorm+MySql. Gin是Go语言的一套WEB框架,在学习一种陌生语言的陌生框架,最好的方式,就是用我们熟悉的思维去学.作为 ...
- odoo14学习----x2many操作与图片设置继承image.mixin
三种方式实现数据更新 一,如上所述 二,通过对数据集调用update({'key':value,'key1':value1..})更新数据集 三,调用write函数,与update类似,传递字典. ...
- 流暢的pyhton4---數據庫備份
一.linux數據庫備份腳本 1.数据库备份,命令如下: ./pg_dump -h localhost -p 5432 -U postgres -W -F c -b -v -f "/opt/ ...
- Qt Creator 入门
Qt 的入门我觉得可以直接从窗口开始,而不是什么"Hello World!".因为Qt 是一个基于图形界面的编程软件,图形界面编程是其核心所在.很久以前,那时候还是Shell编程, ...
- 破解网站码验证,Java实现,不调用任何平台api接口
package image.images; import java.io.File; import java.io.IOException; import java.io.InputStream; i ...
- 聊聊TCP Keepalive、Netty和Docker
聊聊TCP Keepalive.Netty和Docker 本文主要阐述TCP Keepalive和对应的内核参数,及其在Netty,Docker中的实现.简单总结了工作中遇到的问题,与大家共勉. 起因 ...
- Mybatis-初见
目录 介绍 示例 搭建环境 创建一个模块 CURD 万能Map 配置解析 环境配置 environments 属性 properties 类型别名 typeAliases 其他配置 映射器 mappe ...