JSP自定义标签
jsp自定义标签概念
jsp自定义标签是我们自己定义的一类标签,与C标签相比,
jsp自定义标签可以使用一个标签解决一个类似的问题,
例如下拉框中值的回填,复选框值的回填!
为什么要学习自定义标签
目的是为了让代码的可读性更强,代码不再繁琐重复!
自定义标签的语言特点
<开始标签 属性=“属性值”>标签体</结束标签>
空标签
**没有标签主体内容**
例如:
换行标签和水平线标签
br 和 hr 都是符合空标签的特点
没有标签主体内容
就像 <开始标签/> 这样
按标签类型分,可分为:
Ui标签 select 专门用来展示内容的
控制标签 if/foreach 做流程控制用的
数据标签 set 将某一数据赋值给某变量
实例演示以及自定义生命周期的流程讲解
一、C标签的探讨及实现步骤
1、首先在eclipse中新建一个Dynamic Web Project ,然后新建项目的时候记得勾选上web.xml,也就是这个:
2、导入c标签需要的jar,也就是这两个:
你也可以去点击java resource 下的子目录 找到 Libraries去看jar是否导入进去,如果导入进去了,会出现两个这样的牛奶瓶:
3、在webcontent下新建一个Jsp File ,我这里以Demo1.jsp页面为例:
注意:如果你想使用C标签的话,不仅仅最开始需要导入jar,而且需要在jsp页面头部上导入taglib指令方可使用
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<!--set out if -->
<c:set var="name" value="lyf"></c:set>
<hr>
<c:out value="${name}"></c:out>
<hr>
<c:if test="true">男</c:if>
<hr>
<c:if test="false">女</c:if>
</body>
</html>
运行结果:
解析:没错,运行结果就是这样的,因为set标签只是单纯地赋值,所以不会输出内容,而out标签是可以展示页面数据的,所以可将set标签的赋值展示出来,而if标签属于控制标签,可做判断,默认为true,所以会输出男 !
二、自定义标签的实现步骤以及注意要点
自定义标签的开发步骤:
1、首先定义一个标签助手类,并且继承BodyTagSupport类!
2、配置好相关的z.tld&#