自定义JSP标签入门
2023-09-27 14:20:23 时间
1、编写一个实现Tag接口的java类
package TagDemo; import javax.servlet.http.HttpServletRequest; import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.PageContext; import javax.servlet.jsp.tagext.Tag; import java.io.IOException; public class ViewIPTag implements Tag { private PageContext pageContext; @Override public void setPageContext(PageContext pageContext) { this.pageContext = pageContext; } @Override public void setParent(Tag tag) { } @Override public Tag getParent() { return null; } @Override public int doStartTag() throws JspException { System.out.println("调用doStartTag方法"); HttpServletRequest request= (HttpServletRequest) pageContext.getRequest(); JspWriter writer=pageContext.getOut(); String ip=request.getRemoteAddr(); try { writer.write(ip); } catch (IOException e) { e.printStackTrace(); } return 0; } @Override public int doEndTag() throws JspException { System.out.println("调用doEndTag方法"); return 0; } @Override public void release() { System.out.println("调用release方法"); } }
2、编写tld标签库文件,tld文件必须放在WEB-INF文件夹或其子文件夹下,此文件是用来对标签处理器类进行描述
<?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>SDT</short-name> <uri>/sefDefineTag</uri> <tag> <description>输出客户端地址</description> <name>viewIPTag</name> <tag-class>TagDemo.ViewIPTag</tag-class> <body-content>empty</body-content> </tag> </taglib>
taglib标签库标签简述
description:对标签库描述信息
tlib-version:标签库版本
short-name:标签库名称
uri:标签库唯一标识,jsp就是通过uri引用标签的,uri必须以/开头,后面随便写,只要名称唯一;如下面引用<%@taglib prefix="sdt" uri="/sefDefineTag" %>
tag:taglib标签库中可以包含多个自定义标签,每个tag对应一个自定义标签
description:对当前标签的描述
name:定义一个名称,Jsp中通过这个名称引用标签处理器类
tag-class:对应的标签处理器类
body-content:定义标签体操作方式,如empty,规定标签体内不能有内容,如有则抛异常;如JSP,则允许标签体内有内容;下一节结合标签控制器类方法返回值再介绍
3、在Jsp文件中测试
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@taglib prefix="sdt" uri="/sefDefineTag" %> <html> <head> <title></title> </head> <body> IP:<sdt:viewIPTag/> </body> </html>
Jsp中就可以引入标签库,使用prefix可以设置标签库别名,标签使用方式就是<标签库别名:标签名称>
相关文章
- JSP页面固定页面为绝对路径
- <jsp:forward>、requestDispatcher和sendRedirect()的区别
- JSP三大指令 /9大内置对象 /Javabean / EL
- jsp页面中的:<%@ page contentType="text/html; charset=utf-8" language="java"%>的作用及含义,超详细!
- tomcat的jsp页面超过65535,导致500报错
- 精品基于SSM的职业高中学习成绩系统jsp考试试题成绩
- jsp 自定义标签
- jsp连接MySQL数据库显示GIS地理数据乱码问题的解决(select AsText(the_geom))
- Ajax实现xml文件数据插入数据库(二)--- ajax实现与jsp的数据交互。
- 公众号开发 jsp中<a>问题
- RestController注解下返回到jsp视图页面(转)
- jsp出现getOutputStream() has already been called for this response异常的原因和解决方法
- jsp的页面包含——静态包含、动态包含
- 【项目精选】jsp码头船只出行及配套货柜码放管理系统的设计与实现(视频+源码+论文)
- 应用DriverManager类创建sqlserver数据库连接实例 JSP中使用数据库
- jsp中的注释
- jsp - forward指令
- 在前台jsp页面中取得并使用后台放入域中变量的方法
- 算是学完了《Servlet&JSP学习笔记》,立此存照
- SpringBoot2.x系列教程(二十三)SpringBoot集成Jsp