java之jsp标签01

简介: java之jsp标签01

一、标签语言特点

1.1

   空标签: br   hr    
   UI标签 :    input,table  
   控制标签:  if  foreach
   数据标签:  out

1.2标准/普通标签

<开始标签>标签体</结束标签>

<a></a>

<开始标签 属性名="属性值"></结束标签>

<a href = ""></a>

空/单标签

<开始标签/>

<br/>

 

二、标签生命周期

 

三、自定义标签的开发及使用步骤

3.1步骤:

第一步:创建一个标签助手类(继承BodyTagSupport)。

  标签属性必须助手类的属性对应、且要提供对应get/set方法。

第二步:创建标签库描述文件(tld),添加自定义标签的配置。

     注:tld文件必须保存到WEB-INF目录或其子目录。

第三步:在JSP通过taglib指令导入标签库描述文件,并通过指定后缀访问此自定义标签。

标签助手类三个重写方法 return 后面的返回值

public class zhanghao extends BodyTagSupport{
  @Override
  public int doStartTag() throws JspException {
    // TODO Auto-generated method stub
    return super.doStartTag();
  }
  @Override
  public int doAfterBody() throws JspException {
    // TODO Auto-generated method stub
    return super.doAfterBody();
  }
  @Override
  public int doEndTag() throws JspException {
    // TODO Auto-generated method stub
    return super.doEndTag();
  }
}

3.自定义标签的开发 :

配置属性:

<?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>JSTL 1.1 core library</description>
  <display-name>JSTL core</display-name>
  <tlib-version>1.1</tlib-version>
  <short-name>k</short-name>
  <uri>/Java2EE_jsp/WebContent/WEB-INF/kun.tld</uri>
  <validator>
    <description>
        Provides core validation features for JSTL tags.
    </description>
    <validator-class>
        org.apache.taglibs.standard.tlv.JstlCoreTLV
    </validator-class>
  </validator>
  <tag>
  <!-- 标签库的名字 -->
    <name>demo1</name>
    <!-- 该标签对应的助手类 -->
    <tag-class>com.xuayhui.tag.DemoTag</tag-class>
  <!-- 代表是一个JSP标签 -->
    <body-content>JSP</body-content>
    <attribute>
      <!-- 该自定义JSP标签的属性名称 -->
        <name>var</name>
      <!-- 该属性是否必填 -->
        <required>false</required>
       <!-- 该属性值是否支持表达式 -->
        <rtexprvalue>false</rtexprvalue>
    </attribute>
  </tag>
  <tag>
    <name>if</name>
    <tag-class>com.xuayhui.tag.Iftag</tag-class>
    <body-content>JSP</body-content>
    <attribute>
        <name>test</name>
        <required>true</required>
        <rtexprvalue>true</rtexprvalue>
    </attribute>
  </tag>
  <tag>
    <name>set</name>
    <tag-class>com.xuayhui.tag.SetTag</tag-class>
    <body-content>JSP</body-content>
    <attribute>
        <name>var</name>
        <required>true</required>
        <rtexprvalue>false</rtexprvalue>
    </attribute>
    <attribute>
        <name>value</name>
        <required>true</required>
        <rtexprvalue>true</rtexprvalue>
    </attribute>
  </tag>
  <tag>
    <name>out</name>
    <tag-class>com.xuayhui.tag.OutTag</tag-class>
    <body-content>JSP</body-content>
    <attribute>
        <name>value</name>
        <required>true</required>
        <rtexprvalue>true</rtexprvalue>
    </attribute>
  </tag>
</taglib>

步骤2:

帮助类

/**
 * 助手类  
 * @author 86155
 */
public class DemoTag extends BodyTagSupport{
  @Override
  public int doStartTag() throws JspException {
    System.out.println("===================doStartTag=================");
    return EVAL_BODY_INCLUDE;
  }
  @Override
  public int doAfterBody() throws JspException {
    System.out.println("===================doAfterBody=================");
      return super.doAfterBody();
    //  return EVAL_BODY_AGAIN;
    //return SKIP_PAGE;
  }
  @Override
  public int doEndTag() throws JspException {
    System.out.println("===================doEndTag=================");
    return super.doEndTag();
  //  return SKIP_PAGE;
  }

步骤3:

   编写.tid文件

<?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>JSTL 1.1 core library</description>
  <display-name>JSTL core</display-name>
  <tlib-version>1.1</tlib-version>
  <short-name>k</short-name>
  <uri>/Java2EE_jsp/WebContent/WEB-INF/kun.tld</uri>
  <validator>
    <description>
        Provides core validation features for JSTL tags.
    </description>
    <validator-class>
        org.apache.taglibs.standard.tlv.JstlCoreTLV
    </validator-class>
  </validator>
  <tag>
  <!-- 标签库的名字 -->
    <name>demo1</name>
    <!-- 该标签对应的助手类 -->
    <tag-class>com.xuayhui.tag.DemoTag</tag-class>
  <!-- 代表是一个JSP标签 -->
    <body-content>JSP</body-content>
    <attribute>
      <!-- 该自定义JSP标签的属性名称 -->
        <name>var</name>
      <!-- 该属性是否必填 -->
        <required>false</required>
       <!-- 该属性值是否支持表达式 -->
        <rtexprvalue>false</rtexprvalue>
    </attribute>
  </tag>
  <tag>
    <name>if</name>
    <tag-class>com.xuayhui.tag.Iftag</tag-class>
    <body-content>JSP</body-content>
    <attribute>
        <name>test</name>
        <required>true</required>
        <rtexprvalue>true</rtexprvalue>
    </attribute>
  </tag>
  <tag>
    <name>set</name>
    <tag-class>com.xuayhui.tag.SetTag</tag-class>
    <body-content>JSP</body-content>
    <attribute>
        <name>var</name>
        <required>true</required>
        <rtexprvalue>false</rtexprvalue>
    </attribute>
    <attribute>
        <name>value</name>
        <required>true</required>
        <rtexprvalue>true</rtexprvalue>
    </attribute>
  </tag>
  <tag>
    <name>out</name>
    <tag-class>com.xuayhui.tag.OutTag</tag-class>
    <body-content>JSP</body-content>
    <attribute>
        <name>value</name>
        <required>true</required>
        <rtexprvalue>true</rtexprvalue>
    </attribute>
  </tag>
</taglib>


目录
相关文章
|
5月前
|
Java 开发者 UED
【实战宝典】Java异常处理大师级教程:throws关键字,让异常声明成为你的专属标签!
【实战宝典】Java异常处理大师级教程:throws关键字,让异常声明成为你的专属标签!
73 3
|
2月前
|
SQL XML 缓存
java中jsp详解!!!
JSP(Java Server Pages)是一种动态网页技术标准,允许在HTML页面中嵌入Java代码,实现网页逻辑与设计分离。JSP本质上是Servlet的简化,支持跨平台运行。JSP通过内置对象(如request、response、session等)和指令(如page、include、taglib)提供强大的功能,同时利用EL表达式和JSTL标签库简化页面开发。JSP的核心优势在于快速开发和维护Web应用。
54 0
|
4月前
|
XML JavaScript Java
NekoHTML 是一个基于Java的HTML扫描器和标签补全器
**NekoHTML** 是一个基于Java的HTML扫描器和标签补全器(tag balancer),由J. Andrew Clark开发。它主要用于解析HTML文档,并能够“修正”许多在编写HTML文档过程中常犯的错误,如增补缺失的父元素、自动用结束标签关闭相应的元素,以及处理不匹配的内嵌元素标签等。这使得程序能够以标准的XML接口来访问HTML文档中的信息。 ### NekoHTML的主要特点包括: 1. **错误修正**:能够自动修正HTML中的常见错误,如未闭合的标签等。 2. **DOM树生成**:将HTML源代码转化为DOM(Document Object Model)结构,便
|
5月前
|
Java
`<jsp:getProperty>`动作和`<jsp:setProperty>`动作的使用在一个静态页面填写图书的基本信息,页面信息提交给其他页面,并且在其页面显示。要去将表单元素的值赋值给Java
该博客文章讲解了JSP中`<jsp:getProperty>`和`<jsp:setProperty>`动作的使用方法,包括它们的语法格式和如何在页面中使用这些动作来获取和设置JavaBean对象的属性值,并通过图书信息的填写和展示示例进行了演示。
`<jsp:getProperty>`动作和`<jsp:setProperty>`动作的使用在一个静态页面填写图书的基本信息,页面信息提交给其他页面,并且在其页面显示。要去将表单元素的值赋值给Java
|
5月前
|
缓存 安全 Java
Java服务器端技术:Servlet与JSP的集成与扩展
Java服务器端技术:Servlet与JSP的集成与扩展
52 3
|
5月前
|
存储 缓存 前端开发
Servlet与JSP在Java Web应用中的性能调优策略
Servlet与JSP在Java Web应用中的性能调优策略
47 1
|
5月前
|
存储 Java 关系型数据库
基于Servlet和JSP的Java Web应用开发指南
基于Servlet和JSP的Java Web应用开发指南
104 0
|
5月前
|
前端开发 安全 Java
在Java服务器端开发的浩瀚宇宙中,Servlet与JSP犹如两颗璀璨的明星,它们联袂登场,共同编织出动态网站的绚丽篇章。
在Java服务器端开发的浩瀚宇宙中,Servlet与JSP犹如两颗璀璨的明星,它们联袂登场,共同编织出动态网站的绚丽篇章。
33 0
|
5月前
|
Java
jsp和java的结合使用显示学生信息
通过JavaBean封装学生信息,并利用JSP展示。`Student`类定义了学生属性与操作方法。JSP页面通过脚本创建学生对象、填充数据至列表,并遍历输出。实现了学生基本信息的动态展示。
|
7月前
|
存储 Java 关系型数据库
基于Servlet和JSP的Java Web应用开发指南
【6月更文挑战第23天】构建Java Web应用,Servlet与JSP携手打造在线图书管理系统,涵盖需求分析、设计、编码到测试。通过实例展示了Servlet如何处理用户登录(如`LoginServlet`),JSP负责页面展示(如`login.jsp`和`bookList.jsp`)。应用基于MySQL数据库,包含用户和图书表。登录失败显示错误信息,成功后展示图书列表。部署到Tomcat服务器测试功能。此基础教程为深入Java Web开发奠定了基础。
142 10