栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Jsp标签

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Jsp标签

文章目录

一、标签语言特点

二、自定义标签

1)步骤

 2)实例

 三、标签生命周期


一、标签语言特点:

形式:<开始标签 属性="属性值">标签体

 分类:空标签  例:br、hr

            UI标签  例:out标签

            控制标签  例:if、foreach

            数据标签   例:input、table

二、自定义标签

1)步骤

①助手类(继承BodyTagSupport)

源码:

package com.hemingxiang.tag;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.BodyTagSupport;


public class DemoTag1 extends BodyTagSupport{
	
	@Override
	public int doStartTag() throws JspException {
		System.out.println("-------------开始标签-----------");
		
		
		return EVAL_BODY_INCLUDE;
	}
	
	@Override
	public int doAfterBody() throws JspException {
		System.out.println("------------标签体--------------");
		return super.doAfterBody();
		
	}
	
	@Override
	public int doEndTag() throws JspException {
		System.out.println("------------结束标签-------------");
		return super.doEndTag();
		
	}
	
}

②标签库描述文件tld(tld文件必须保存到WEB-INF目录或其子目录)




    
  JSTL 1.1 core library
  JSTL core
  1.1
  x
  http://jsp.veryedu.cn

  
    
        Provides core validation features for JSTL tags.
    
    
        org.apache.taglibs.standard.tlv.JstlCoreTLV
    
  

  
   
    demo1
   
    com.hemingxiang.tag.DemoTag1
   
    JSP
    
     
        var
       
        false
        
        false
    
  
  
  
    if
    com.hemingxiang.tag.IfTag
    JSP
    
        test
        true
        true
    
  
  
  
    set
    com.hemingxiang.tag.SetTag
    JSP
    
        var
        true
        false
    
    
        value
        true
        true
    
  
  
  
    out
    com.hemingxiang.tag.OutTag
    JSP
    
        value
        true
        true
    
  

  

③JSP通过taglib指令导入标签库

 2)实例

先创建一个tld文件:

再创建一个助手类:

  在有标签体的情况下,默认会调用助手类的doStartTag,doAfterBody,doEndTag方法

 三、标签生命周期

看上面的实例得出3点结论:1.如果将doStartTag的返回值改为SKIP_BODY,那么doAfterBody就不调用执行(路线1)
        2.如果将doStartTag的返回值改为EVAL_BODY_INCLUDE,那么doAfterBody会调用执行(路线2)
          3.如果将doAfterBody的返回值改为EVAL_BODY_AGAIN,那么会一直调用doAfterBody,进入循环(路线3)

以下的返回值在实例中有用到,具体方法看实例 

 

 标签开发场景,以标注为例:

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/980830.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号