jsp自定义标签的例子

JSP2自定义标签库技术 1、概述:     JSP本质其实仍然是Servlet,部署JSP后,服务器会将其自动转化成Servlet进行运行。用JSP取代Servlet的原因是利用Servlet实现用户界面比较繁琐,将大量的静态HTML代码穿插于Java代码中增加了代码维护工作的难度,并且也不利于前端开发人员和美工人员参与项目开发。     JSP 2 标准为开发者提供了自定义标签库的功能。使用自定义标签库的目的跟使用 阅读详情

jsp:

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%@ taglib uri="/WEB-INF/MyTag.tld" prefix="cc"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP 'tagone.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">
  </head>
  
  <body>
  	<cc:iterator count="10">Hello world jsp taglib !!!</cc:iterator>
  </body>
</html>

web.xml:

<?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">
  <display-name></display-name>	
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <jsp-config>
  	  <taglib>
  		<taglib-uri>/WEB-INF/MyTag.tld</taglib-uri>
  		<taglib-location>/WEB-INF/MyTag.tld</taglib-location>
  	  </taglib>
  </jsp-config>

</web-app>

MyTag.tld

<?xml version="1.0" encoding="UTF-8"?> 
<taglib> 
   <tlibversion>1.0</tlibversion> 
   <jspversion>1.1</jspversion>       
  <tag> 
    <name>iterator</name> 
    <tagclass>com.zyujie.util.MyTag</tagclass> 
    <bodycontent>jsp</bodycontent> 
    <!-- 定义属性 --> 
    <attribute> 
       <name>count</name> <!-- 属性名字 --> 
       <type>int</type>  <!-- 属性类型 --> 
       <requried>false</requried> <!-- 是否必须 --> 
       <rtexprvale>false</rtexprvale> <!-- 表示是否可以使用JSP表达式  --> 
  </attribute> 
  </tag> 
</taglib> 
MyTag.class

package com.zyujie.util;

import java.io.IOException;
import java.util.Date;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.BodyContent;
import javax.servlet.jsp.tagext.BodyTagSupport;

public class MyTag extends BodyTagSupport {

//	执行顺序
//
//	doStartTag()->setBodyContent()->doInitBody()->doAfterTag()->doEndTag()
//
//	如果doStartTag()返回的是EVAL_BODY_INCLUDE执行doAfterTag()方法,
//
//	如果它返回SKIP_BODY就执行doEndTag()方法。
//
//	setBodyContent()方法用于设置标签体内容,如果在计算BodyContent时需要进行一些初始化工作,
//
//	则在doInitBody()方法中完成。标签体内容执行完后,会调用doAfterBody()方法
//
//	在doAfterTag()方法中返回EVAL_BODY_AGAIN来重复执行doAfterTag()方法
//
//	返回SKIP_BODY值则执行doEndTag()方法。
//
//	在doEndTag()方法中返回EVAL_PAGE值,则执行此标签的后的其它代码,
//
//	返回SKIP_PAGE则不执行此页面的其它代码。
	
	private int count;

	private HttpServletRequest reqeust;

	private JspWriter out;

	public void init() {
		reqeust = (HttpServletRequest) pageContext.getRequest();
		out = pageContext.getOut();
	}

	@Override
	public int doStartTag() throws JspException {
		init();
		return this.EVAL_BODY_INCLUDE;
	}

	// 设置当前标签体
	@Override
	public void setBodyContent(BodyContent bodyContent) {
		this.bodyContent = bodyContent;
		System.out.println("setBodyContent...");
	}

	// 需要初始化bodyContent
	@Override
	public void doInitBody() throws JspException {
		System.out.println("init.....");
	}

	@Override
	public int doAfterBody() throws JspException {
		if (count >= 1) {
			try {
				out.println(count);
				out.println("<Br>");
			} catch (IOException e) {
				e.printStackTrace();
			}
			count--;
			return this.EVAL_BODY_AGAIN;
		} else {
			return this.SKIP_BODY;
		}
	}

	@Override
	public int doEndTag() throws JspException {
		java.text.SimpleDateFormat formater = new java.text.SimpleDateFormat("yyyy-MM-dd");
		String date = formater.format(new Date());
		try {
			out.print(date);
		} catch (IOException e) {
			e.printStackTrace();
		}
		return this.EVAL_PAGE;
	}

	// 必须实现setXX()方法
	public void setCount(int count) {
		this.count = count;
	}

}
完成。。。

从科研小白到动物行为分析:我的DeepLabCut 3.0安装与初体验全记录 本文记录了从科研小白到成功安装并使用DeepLabCut 3.0进行动物行为分析的全过程。详细介绍了Anaconda环境配置、CUDA版本选择、DeepLabCut安装步骤及验证方法,并分享了初体验中的实用技巧和跨学科研究心得,为生物研究者提供了AI工具应用的实战指南。 阅读详情

相关推荐

【Fluent】太阳辐射模型—Solar Ray Tracing

一、引言Fluent提供了一个太阳能负载模型,可用于计算进入计算域的太阳光线的辐射效应。该模型可以分为:太阳光线追踪和太阳辐照。其中太阳辐照需要使用DO或MC模型,直接向辐射模型提供外光束方向和强度参数。太阳光线追踪不限制辐射模型,可以独立于辐射方程使用,甚至可以在辐射模型off的情况下使用。本文主要介绍太阳光线追踪模型。该模型非常适用于以下领域汽车气候控制 (ACC) 应用建筑物中的人体热舒适建模应用该模型使用着色算法进行太阳光线追踪。光线会透过半透明的面加载在照射面上。

a5567899的博客 7588

JSP简单标签实例

1.实现案例列表开发防盗链标签开发&lt;c:if&gt;标签开发&lt;c:if&gt;&lt;c:else&gt;标签开发迭代标签开发html转义标签2.在web-inf目录下创建tld文件&lt;?xml version="1.0" encoding="UTF-8" ?&gt; &lt;taglib xmlns="http://java.sun.com/xml/ns/j2ee&q

u011244410的专栏 499

『言善信』Fiddler工具 — 1、Fiddler介绍与安装

文章目录1、Fiddler简介2、Fiddler功能3、Fiddler工作原理4、Fiddler安装 1、Fiddler简介 Fiddler是强大的抓包工具之一,它能记录所有客户端和服务器之间的HTTP和HTTPS请求,是web调试的利器。 Fiddler是位于客户端和服务端之间的HTTP代理,它的原理是以web代理服务器的形式进行工作的,使用的代理地址是:127.0.0.1,端口默认为8888,我们也可以通过设置进行修改。 Fiddler可以抓取支持HTTP代理的任意程序的数据包,如果要抓取https会

繁华似锦Fighting 1468

jsp自定义标签的小例子

网上学习了一些关于jsp自定义标签的教程,自己实现了一个小例子。 jsp: My JSP 'tagone.jsp' starting page Hello world jsp taglib !!! web.xml: <web-app version="2.5" xmlns="http://java.s

zyujie的专栏 1243

腾讯会议+OBS虚拟摄像头:解决多人屏幕共享的终极指南(附常见问题排查)

本文详细介绍了如何利用OBS虚拟摄像头技术,解决腾讯会议中多人屏幕共享的痛点。通过将OBS作为视频混流中心,可以突破腾讯会议单屏共享的限制,实现多屏幕、多窗口内容的同步展示,并提升演示的专业度。文章涵盖了Windows与Linux双平台的配置步骤、高阶场景搭建以及常见问题(如黑屏、画中画)的排查方法,是团队协作与专业演示的实用指南。

i8j9k0l1的博客 931

从ENVI SARscape到SNAP:手把手教你迁移哨兵1 GRD数据预处理流程(含避坑指南)

本文详细介绍了从ENVI SARscape迁移到SNAP处理哨兵1 GRD数据的全流程,包括工具哲学差异、数据准备注意事项、核心处理流程等效实现及地形校正技巧。特别针对雷达数据预处理中的常见陷阱提供避坑指南,帮助用户高效完成工具迁移并确保结果质量。

weixin_28677005的博客 486

jsp的自定义标签例子

         自定义标签都必须继承一个父类:javax.servlet.jsp.tagext.SimpleTagSupport(javax.servlet.jsp.tagext.TagSupport;),除此之外,自定义标签还有如下的要求:        (1)如果以标签类包含属性,每个属性都有对应的getter和setter方法;        (2)重写doTag()(doStartTag...

每天进步一点 467

深度学习之常用算子介绍

打开 onnx 模型图,可以看到它是一个有向无环图。除了 Input、Output ,其他都是算子(是操作,而不是节点)在ONNX(Open Neural Network Exchange)模型中,除了输入和输出,其他都是算子(Operations)。算子是表示神经网络模型中的不同操作或层的元素。一个ONNX模型由一系列算子组成,通过连接这些算子来定义模型的计算流程。

ueke1的博客 8459

JSP自定义标签例子

由于工作需要,最近要做一个WAP网。打算采用  SPRING + HIBERNATE 做 应用层和持久层。表示层的话,由于没有合适的开源框架,打算改源。准备把Struts 改成 WAPruts。Struts其实控制器其实不用动的,只要改前端表示就行了,而由于表示很多部分是封装好了标签的,所以改Struts也就是主要改标签的展现。首先就做了个自定义标签的例子备忘记 :功能:在页面输出

It's my life 1160

【Leetcode】269.火星词典(Hard)

应用拓扑排序

明朗晨光的专栏 771

全面解读AI Infra:架构、生态与未来趋势

文章摘要 大模型时代下,AI基础设施(AI Infra)成为关键技术基建,涵盖从数据准备到模型服务的全栈技术体系。文章系统解构了AI Infra的四层架构(硬件资源层、资源管理调度层、开发框架层、平台工具层),并分析了全球AI Infra生态图谱,包括云计算巨头、芯片厂商等全栈服务商,以及中国特色的多元竞合格局。通过对比Data Infra与AI Infra的核心差异,指出AI Infra更关注智能应用的规模化与自动化。文章还探讨了从传统数据设施向AI基础设施的转型路径,强调自主可控、软硬协同等发展趋势,为

技术引领业务创新 610

JSP自定义标签的简单例子

 JSP中允许我们自定义自己的标签,目前已经发展出来的JSTL的基本内容便是从这里来的,不过别人都是搞研究的,我们能用就行了,不过我们还是要了解一下其中的最基本的地方,那就是如何自定义自己的标签.    下面开始.要自定义标签,首先得知道两个类:TagSupport和BodyTagSupport.BodyTagSupport继承了前面的类,这里仅对TagSupport为例.   我们的标签类必须继...

It's my life . . . 133

PCL 提取两片点云的非重叠部分【2025最新版】

PCL 提取两片点云的非重叠部分。博客长期更新,本文最近一次更新时间为:2025年9月1日。

点云侠的博客 36万+

jsp自定义标签入门例子

1、演示viewIP 1)       演示jsp中java代码实现 2)       自定义标签实现   2、演示传统自定义标签(jsp2.0以前的) 1)       使用自定义标签控制页面内容(标签体)是否输出,利用doStartTag()的返回值控制 returnthis.SKIP_BODY; //忽略标签体 return this.EVAL_BODY_INCLUDE; //

303

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

jsp自定义标签例子

在WEB 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-jsptaglibr

梦想起飞的地方......... 601

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

jsp使用自定义标签taglib分页系列——完整例子

http://download1.youkuaiyun.com/down3/20070615/15133033137.war  jsp使用自定义标签taglib分页系列——完整例子

cao_david的专栏 1581

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

JSP自定义标签的例子(KAPOK中的代码)

一。OperationJavaScriptTagpackage com.kapok.web.tag;import java.io.IOException;import javax.servlet.jsp.JspException;import javax.servlet.jsp.JspWriter;import javax.servlet.jsp.tagext.TagSupport;/** * T

hdyall的专栏 1307

JSP自定义标签-第一个简单的例子

此例子标签的效果开发步骤定义实体类public class Emp { private String empId; private String name; private String phoneNumber; public Emp() { } public String getEmpId() { return empId; }

落叶无声的专栏 386

jsp 自定义标签【继承TagSupport类】【带有参数】 简单例子三

<br />1。标签代码实现类:<br />package taglib;<br />import java.io.IOException;<br />import java.io.Writer;<br />import javax.servlet.jsp.JspException;<br />import javax.servlet.jsp.tagext.TagSupport;<br />import org.apache.log4j.Logger;<br />/**<br /> * <br /> * @

想飞的鱼 2935

jsp 自定义标签【EL表达式定义】 简单例子一

标签库组成:1。标签处理程序类----实现标签所代表功能的程序段2。标签库描述文件(tld)---描述标签处理程序与前端标签的匹配3。标签指示----用在jsp显示端的要实现一个简单的,计算,字符串长度的标签。(一):标签处理程序:package taglib;import org.apache.log4j.Logger;  引用log4j库/** *  * @author zwc * */public class StringUtils { private static Logger logger = L

想飞的鱼 2022

jsp 自定义标签【继承TagSupport类】【区别与例一】 简单例子二

标签库组成:1。标签处理程序类----实现标签所代表功能的程序段2。标签库描述文件(tld)---描述标签处理程序与前端标签的匹配3。标签指示----用在jsp显示端的要实现一个简单的,计算,字符串长度的标签。(一):标签处理程序:注意:这里可以,实现Tag接口,或者,重写它的支持类TagSupportpackage taglib;import java.io.IOException;import java.util.Date;import javax.servlet.jsp.JspException;im

想飞的鱼 2267

jsp 自定义标签【继承TagSupport类】【继承TagExtraInfo类 声明 代码段变量】 简单例子五

<br />0。前提:<br />TagData:描述标签属性相关信息的类<br />VariableInfo :描述代码段,jsp中,变量的一些,定义信息<br /> <br />1。标签代码实现类:【与上个例子,解释一样,不在赘言】<br />package taglib;<br />import javax.servlet.jsp.JspException;<br />import javax.servlet.jsp.tagext.TagSupport;<br />import org.apache.

想飞的鱼 1694

jsp 自定义标签【继承TagSupport类】【在 tld描述 中声明 代码段变量】 简单例子四

<br />就是在jsp页面中调用变量如<%=a%><br />1。标签程序代码实现部分:<br />package taglib;<br />import javax.servlet.jsp.JspException;<br />import javax.servlet.jsp.tagext.TagSupport;<br />import org.apache.log4j.Logger;<br />/**<br /> * <br /> * @author zwc<br /> *<br /> */<br /

想飞的鱼 1208

Jsp2.0自定义标签(第一天)——一个简单的例子

今天是学习自定义标签的第一天 Jsp2.0以来,自定义标签的实现比传统标签的实现容易了很多,一般只要extends类SimpleSupport重写doTag()方法即可。 先看最简单的例子,输出一个Hello World 效果图: jsp页面的代码 <%@ page language="java" contentType="text/html; charse...

weixin_30888707的博客 103

Java - 使用标签库有什么好处?如何自定义JSP标签?

分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net 使用标签库的好处包括以下几个方面: - 分离JSP页面的内容和逻辑,简化了Web开发; - 开发者可以创建自定义标签来封装业务逻辑和显示逻辑; - 标签具有很好的可移植性、可维护性和可重用性; - 避免了对Scriptlet(小脚本)的使用...

了解➔熟悉➔掌握➔精通 3万+
上一篇: java环境变量设置
下一篇: lucene-queryparser的使用
%坏孩子丶
博客等级 码龄14年 7粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值