完成你的自定义JSP Tag标签-Basic Coustom Tag

简介: 完成你的自定义JSP Tag标签-Basic Coustom Tag

说明:基于Eclipse 3.2 + Tomcat 4.0编译完成


1.完成你自己的Tag Class,javax.servlet.jsp中提供一个Tag接口类


TagSupport 和 BodyTagSupport两个类,你自己的Tag Class必须


extends其中一个。本例中HrefTag Class extends TagSupport类,并


完成了doStratTag方法的重写,主要代码如下:

public int doStartTag(){

JspWriter ōut = pageContext.getOut();
  String value = getValue();
  String code = getCode();
  System.out.println("value = " + value);
  System.out.println("code = " + code);

try{
   if(code != null && value != null) {
    out.print("<a href=");
    out.print("'");
    out.print(value);
    out.print("'");
    out.print(">");
    out.print(code);
    out.print("</a>");
   }
  }catch(IOException e){
   System.out.println("Error in Tag:" +  e.getMessage());
  }
  
  return(SKIP_BODY);
 }
 

对于一个Tag Class来说,想要正确的工作,必需有相应的TLD文件,本例为

test-taglib.tld,定义如下:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE taglib
PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
"http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">

<taglib>

 <tag>
  <name>href</name>
  <tagclass>com.test.tag.HrefTag</tagclass>
  <bodycontent>jsp</bodycontent>
  <info>Simplest example: href the page </info>
  <attribute>
   <name>code</name>
   <required>true</required>
   <rtexprvalue>false</rtexprvalue>
  </attribute>
  <attribute>
   <name>value</name>
   <required>true</required>
   <rtexprvalue>false</rtexprvalue>
  </attribute>
 </tag>
 
</taglib>
 

作为jsp页面要引用一个Tag,必需导入它对应的Tag声明,告诉系统怎么

去找到和地位到这个TLD文件,再根据TLD文件去寻找对应的Java文件

jsp页面声明如下:

<%@ taglib uri="simpleTag" prefix="test" %>

页面中应用Tag如下:

<li><test:href code="Click here" value="http://www.sina.com.cn" />

本文中由于在页面声明Taglib时候使用的uri是相对路径,因此要在

web.xml中加上taglib的声明,如下:

<taglib>


   <taglib-uri>simpleTag</taglib-uri>


   <taglib-location>

              /WEB-INF/tld/test-taglib.tld

   </taglib-location>

</taglib>
 

说一下我的目录结构:


jspTagSample


/src/com.test.tag.HrefTag


/jsp/index.jsp


/jsp/web-inf/web.xml


/jsp/web-inf/tld/test-taglib.tld


/build.xml


最后是程序的效果,点击Click here将会超连接到新浪主页




学习本例时候,可能遇到的常见问题:


页面请求时候遇到:Unable to compile clas for JSP


对策:把在build路径中要加上:%tomcat_home%/common/lib/*.jar


对应的build.xml文件为:

<path id="libraries">
        <fileset dir="${build}">
            <include name="*.jar"/>
        </fileset>
</path>
相关文章
|
6月前
|
SQL XML Java
JSP 教程 之 JSP 标准标签库(JSTL) 4
**JSP的JSTL是用于简化Web开发的标签库,包括核心、格式化、SQL、XML和函数5个部分。SQL标签库允许与数据库交互,如设定数据源、执行查询和更新,以及处理参数。例如, `&lt;sql:setDataSource&gt;` 定义数据源, `&lt;sql:query&gt;` 执行查询。通过使用JSTL,开发者能更整洁地处理JSP页面。**
51 8
|
6月前
|
XML SQL Java
JSP 教程 之 JSP 标准标签库(JSTL) 1
JSP的JSTL是用于简化页面逻辑的标签库,涵盖核心、格式化、SQL、XML和函数五大类标签。要安装,下载Apache的JSTL包,将jar文件放入WEB-INF/lib,tld文件复制到WEB-INF,并在web.xml中配置相应的taglib信息。JSTL促进了JSP页面的清洁和结构化。
49 5
|
6月前
|
XML SQL Java
JSP 教程 之 JSP 标准标签库(JSTL) 6
**JSP JSTL 摘要:** JSTL是JSP的标签库,包含核心、格式化、SQL、XML和函数5类标签。它用于执行常见任务,如迭代、条件判断和XML操作。JSTL函数库提供字符串处理函数,如`contains()`, `endsWith()`, `escapeXml()`等,方便XML和HTML处理。通过`&lt;%@ taglib %&gt;`导入,如`fn:trim()`用于去除字符串两端空白。
44 5
|
2月前
|
Java 容器
【学习笔记】Jsp与Servlet技术
【学习笔记】Jsp与Servlet技术
82 0
|
4月前
|
SQL Java 数据库
jsp中使用Servlet查询SQLSERVER数据库中的表的信息,并且打印在屏幕上
该博客文章介绍了在JSP应用中使用Servlet查询SQL Server数据库的表信息,并通过JavaBean封装图书信息,将查询结果展示在Web页面上的方法。
jsp中使用Servlet查询SQLSERVER数据库中的表的信息,并且打印在屏幕上
|
4月前
|
供应链 前端开发 Java
JSP+servlet+mybatis+layui服装库存管理系统(大三上学期课程设计)
这篇文章通过一个服装库存管理系统的实例,展示了在Spring Boot项目中使用Ajax、JSON、layui、MVC架构和iframe等技术,涵盖了注册登录、权限管理、用户管理、库存管理等功能,并提供了系统运行环境和技术要求的详细说明。
JSP+servlet+mybatis+layui服装库存管理系统(大三上学期课程设计)
|
4月前
|
前端开发 安全 Java
在Java服务器端开发的浩瀚宇宙中,Servlet与JSP犹如两颗璀璨的明星,它们联袂登场,共同编织出动态网站的绚丽篇章。
在Java服务器端开发的浩瀚宇宙中,Servlet与JSP犹如两颗璀璨的明星,它们联袂登场,共同编织出动态网站的绚丽篇章。
31 0
|
6月前
|
自然语言处理 前端开发 Java
Servlet与JSP:Java Web开发的基石技术详解
【6月更文挑战第23天】Java Web的Servlet与JSP是动态网页的核心。Servlet是服务器端的Java应用,处理HTTP请求并响应;JSP则是结合HTML与Java代码的页面,用于动态内容生成。Servlet通过生命周期方法如`init()`、`service()`和`destroy()`工作,而JSP在执行时编译成Servlet。两者在MVC架构中分工,Servlet处理逻辑,JSP展示数据。尽管有Spring MVC等框架,Servlet和JSP仍是理解Web开发基础的关键。
114 12
|
6月前
|
存储 Java 关系型数据库
基于Servlet和JSP的Java Web应用开发指南
【6月更文挑战第23天】构建Java Web应用,Servlet与JSP携手打造在线图书管理系统,涵盖需求分析、设计、编码到测试。通过实例展示了Servlet如何处理用户登录(如`LoginServlet`),JSP负责页面展示(如`login.jsp`和`bookList.jsp`)。应用基于MySQL数据库,包含用户和图书表。登录失败显示错误信息,成功后展示图书列表。部署到Tomcat服务器测试功能。此基础教程为深入Java Web开发奠定了基础。
130 10
|
6月前
|
缓存 小程序 前端开发
Java服务器端技术探秘:Servlet与JSP的核心原理
【6月更文挑战第23天】Java Web开发中的Servlet和JSP详解:Servlet是服务器端的Java小程序,处理HTTP请求并响应。生命周期含初始化、服务和销毁。创建Servlet示例代码展示了`doGet()`方法的覆盖。JSP则侧重视图,动态HTML生成,通过JSP脚本元素、声明和表达式嵌入Java代码。Servlet常作为控制器,JSP处理视图,遵循MVC模式。优化策略涉及缓存、分页和安全措施。这些技术是Java服务器端开发的基础。
69 9