首页 > 其他分享 >jsp自定义标签

jsp自定义标签

时间:2024-02-29 18:26:56浏览次数:24  
标签:自定义 标签 pageContext jsp import public out

一、自定义标签的作用

  自定义标签主要用于移除Jsp页面中的java代码。

二、自定义标签开发和使用

2.1、自定义标签开发步骤

   1、编写一个实现Tag接口的Java类(标签处理器类)

复制代码
 1 package me.gacl.web.tag;
 2 
 3 import java.io.IOException;
 4 
 5 import javax.servlet.http.HttpServletRequest;
 6 import javax.servlet.jsp.JspException;
 7 import javax.servlet.jsp.JspWriter;
 8 import javax.servlet.jsp.PageContext;
 9 import javax.servlet.jsp.tagext.Tag;
10 
11 public class ViewIPTag implements Tag {
12 
13     //接收传递进来的PageContext对象
14     private PageContext pageContext;
15     
16     @Override
17     public int doEndTag() throws JspException {
18         System.out.println("调用doEndTag()方法");
19         return 0;
20     }
21 
22     @Override
23     public int doStartTag() throws JspException {
24         System.out.println("调用doStartTag()方法");
25         HttpServletRequest request =(HttpServletRequest) pageContext.getRequest();
26         JspWriter out = pageContext.getOut();
27         String ip = request.getRemoteAddr();
28         try {
29             //这里输出的时候会抛出IOException异常
30             out.write(ip);
31         } catch (IOException e) {
32             //捕获IOException异常后继续抛出
33             throw new RuntimeException(e);
34         }
35         return 0;
36     }
37 
38     @Override
39     public Tag getParent() {
40         return null;
41     }
42 
43     @Override
44     public void release() {
45         System.out.println("调用release()方法");
46     }
47 
48     @Override
49     public void setPageContext(PageContext pageContext) {
50         System.out.println("setPageContext(PageContext pageContext)");
51         this.pageContext = pageContext;
52     }
53 
54     @Override
55     public void setParent(Tag arg0) {
56 
57     }
58 
59 }
复制代码

  2、在WEB-INF/目录下新建tld文件,在tld文件中对标签处理器类进行描述

  

标签:自定义,标签,pageContext,jsp,import,public,out
From: https://www.cnblogs.com/bdsz/p/18045040

相关文章

  • .net 应用程序 生成Docker映像时 dotnet restore找不到自定义源的包的问题,ContainerBu
    一、问题:我们在.net应用中生成Docker映像时,会出现ContainerBuildAndLaunch任务意外失败的问题。 查看输出窗口发现,是执行dotnetrestore时,找不到包的问题,因为我的这些包是在自己的私有源上二、解决方案:在Dockerfile文件中,在执行dotnetrestore前一行添加nuget私有源就行......
  • k8s标签的增删改查和选择器
    在Kubernetes(K8s)中,标签(Label)是与资源对象相关联的键值对,用于实现多维度的资源分组管理功能。下面是关于Kubernetes标签的增删改查操作的简要说明:查询标签(查)要查看资源对象的标签,可以使用kubectlget命令并加上--show-labels选项。例如,要查看所有节点的标签,可以运行:......
  • kettle从入门到精通 第四十九课 ETL之kettle 自定义插件01
    1、kettle插件是什么kettle本身有足够多的转换或者job步骤,但是依然不能覆盖所有的业务场景,所以Kettle自定义插件在有些独特的业务场景可以大显身手。Kettle的插件架构使得我们可以不用修改Kettle本身代码,通过一些独立的代码就可以扩展Kettle的功能。这些独立的代码称为插件。Ke......
  • FastAPI系列:自定义认证
    fromtypingimportOptional,TuplefromfastapiimportFastAPI,RequestfrompydanticimportBaseModel#通过starlette.authentication导入AuthenticationBackendfromstarlette.authenticationimportAuthenticationBackend,AuthenticationError,AuthCredentials,S......
  • spring-boot整合jsp + mybatis ems小案例分析
    1.项目开发流程 需求分析:分析用户主要需求提取出项目核心功能根据核心功能构建页面原型 库表设计(概要设计):1.分析整个系统有哪些表2.分析出表之间关联关系3.确定字段 详细设计(流程图,伪代码):用来验证库表准确性 功能实现(编码):环境搭建具体功能实现 功能测试......
  • k8s hpa自定义指标
    参考链接 https://blog.csdn.net/fly910905/article/details/105375822这个大佬写的挺好的。不再搬运了,仅不不懂的地方记录一下。哈哈哈模拟增加memory的脚本解释一下,因为我也第一次见到这么玩,命令也是新鲜#!/bin/bashmkdir/tmp/memorymount-ttmpfs-osize=40Mt......
  • Oracle-JPA扩展工具-原生SQL查询并返回自定义DTO
    Java-JPA原生SQL查询返回自定义DTO:importcom.tjgeo.njsosms.framework.repository.IBaseRepository;importcom.tjgeo.njsosms.risk.support.entity.Source;importorg.springframework.data.jpa.repository.Query;importjava.util.List;/***${Description}**@......
  • eclipse自定义jak版本
    安装跟目录下eclipse.ini文件-startupplugins/org.eclipse.equinox.launcher_1.4.0.v20161219-1356.jar-vmC:\ProgramFiles\Java\jdk8u392-b08\bin--launcher.libraryplugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.500.v20170531-1133-productorg.eclips......
  • SpringBoot 1x 系列之(七)自定义starter
    自定义starterstarters原理、自定义starters如何自定义starter:​ 1、这个场景需要使用到的依赖是什么?​ 2、如何编写自动配置@Configuration//指定这个类是一个配置类@ConditionalOnXXX//在指定条件成立的情况下自动配置类生效@AutoConfigureAfter//指定自动配置类的......
  • SpringMVC系列之(六)自定义类型转换器
    自定义类型转换器SpringMVC在进行请求参数绑定时,自动进行了类型转换,前端传来的参数都是字符串,而控制器中的方法在接收时,可能会用到其他数据类型(如:Date、Integer、Double等),以日期类型为例,前端传的日期格式多样,SpringMVC自动转换类型的格式(2011/11/11)支持不了这么多类型,故有的日期......