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

J2EE从入门到入土05 自定义jspl标签

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

J2EE从入门到入土05 自定义jspl标签

目录

什么是JSPL标签库

 为什么要使用标签

 标签的基本类型&结构

jstl自定义标签的运行周期 

 自定义标签类

if实现类

out实现类

 编写标签库描述文件(tld)

 页面输出测试

什么是JSPL标签库

JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。JSTL支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。 除了这些,它还提供了一个框架来使用集成JSTL的自定义标签。

 为什么要使用标签

 JSP是用来显示数据的,前面我们在JSP中的HTML中嵌入java代码,与<%%>等混在一起,可读性和可维护性都很差,而且使用java脚本不便于代码重用,要实现比较复杂的显示功能,

  也不方便,而JSP标签和HTML代码很类似,使用JSP标签显得JSP整洁而干净,可读性好,标签能够重复使用,所以就像我们上面说的,我们慢慢意识到不足,就自然在一步步改进,从使用JSP行为,

  使用EL,在使用标签,都是为了一个目的,让JSP更加完全,方便,只显示数据,而不嵌入逻辑代码。这个涉及到了分层思想,后面说讲解到。

 标签的基本类型&结构

标签类型

UI标签, 输出页面元素
控制标签, 如if标签,foreach标签等
数据标签,用于向页面输入数据

基本结构

<开始标签>标签体

空标签(没有标签体的标签)

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



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

使用jstl标签需要导入的jar包 

jstl -1.2 和standard-1.1.2 

jstl自定义标签的运行周期 

 自定义标签类

写了if和out两个简单的自定义标签 

if实现类
package com.zking.mymvc.tag;

import javax.servlet.jsp.tagext.BodyTagSupport;

public class IfTag extends BodyTagSupport{

	private boolean test;

	public boolean isTest() {
		return test;
	}

	public void setTest(boolean test) {
		this.test = test;
	}
	@Override
	public int doStartTag() {
		
		if(this.isTest()) {
			return EVAL_BODY_INCLUDE;
		}
		
		return SKIP_BODY;
	}
	
}

out实现类
package com.zking.mymvc.tag;

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

import com.mysql.jdbc.StringUtils;

public class OutTag extends BodyTagSupport{

	private String val;//传入的值
	
	private String defaultVal;//默认值

	public String getVal() {
		return val;
	}

	public void setVal(String val) {
		this.val = val;
	}

	public String getDefaultVal() {
		return defaultVal;
	}

	public void setDefaultVal(String defaultVal) {
		this.defaultVal = defaultVal;
	}
	
	@Override
	public int doStartTag(){
		JspWriter out = this.pageContext.getOut();
		try {
			if(StringUtils.isNullOrEmpty(val)) {
				out.print(this.defaultVal);
			}else {
				out.print(this.val);
			}
		}catch (Exception e){
			e.printStackTrace();
		}
		return SKIP_BODY;
	}
}

 编写标签库描述文件(tld)

将你定义的标签具备相应的格式规范编辑在 tld 文件中 




	1.0
	1.2
	Simple Tags
		
	/zking
	
	
	out
	
	com.zking.mymvc.tag.OutTag
	
	empty
	
	
		
		val
		
		true
		
		true
		
		out标签的val属性,用于输出val的值
	
		
	
		
		defaultVal
		
		false
		
		false
		
		out标签的defaultVal属性,如果val属性为空,则输出defaultVal默认值
	
	
	
	
	if
	
	com.zking.mymvc.tag.IfTag
	
	jsp
	
	
	
	test
	
	true
	
	true
	
		if标签的test,用来判断是否满足条件执行任务
	
	
	

 页面输出测试

 简单测试一些满足条件与不满足条件 及输出内容与默认内容

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="z" uri="/zking" %>




Insert title here



lihao


lihao




结果

本期内容到此结束了 

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

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

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