1.什么是jsp标签:
Javajsp自定义标签是一种在JSP页面中编写的标记,它可以将Java代码和HTML标记结合起来,使得复杂的页面构建更加容易。自定义标签可以实现简单到简单的操作,例如将字符串格式化成货币格式、生成HTML表格等,也可以实现更复杂的操作。
2.jsp标签语言特点:
- 模块化:自定义标签可以重用,减少了代码冗余,使得代码更加清晰简洁。
- 动态性:自定义标签可以基于不同的条件来生成不同的输出结果。
- 灵活性:自定义标签可以与其他JSP的标签类和JavaBean配合使用,增加代码的可扩展性。
- 可维护性:使用自定义标签可以很容易地维护和修改代码。
- 外部化:可以通过配置文件或属性文件来配置自定义标签,提供更高级的定制性。
- 可重用性:自定义标签可以在不同的项目中被重用,使得代码的开发成本和维护成本得到大大降低。
标签形式:
<开始标签 属性="属性值">标签体</结束标签> 示例: <c:if test="true">true</c:if>
标签分类:
空标签: br hr UI标签 : input,table 控制标签: if foreach 数据标签: out
3.自定义标签开发 :
Java自定义标签(Tag)是一种在JSP页面中编写的标记,它允许我们自定义一些扩展标记库,并在JSP页面中使用。
步骤
继承Bodytagsuppcrt:
标签描述tld:
<?xml version="1.0" encoding="UTF-8"?> <taglib xmlns="http://java.sun.com/xml/ns/xy" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/xy/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>xy</uri> <validator> <description> Provides core validation features for JSTL tags. </description> <validator-class> org.apache.taglibs.standard.tlv.JstlCoreTLV </validator-class> </validator> <tag> <!-- 标签库的名字 --> <name>xy</name> <!-- 该标签对应的助手类 --> <tag-class>com.xiaoye.xytag</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.xiaoye.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.xiaoye.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.xiaoye.Outtag</tag-class> <body-content>JSP</body-content> <attribute> <name>value</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> </tag> </taglib>
通过taglib导入:
4.标签的生命周期:
JSP标签的生命周期主要包括初始化、执行、清理三个阶段。
标签开发场景:
除了初始化、执行、清理三个阶段之外,我们还可以通过编写标签处理器中的doStartTag() 和 doEndTag() 方法来控制标签在JSP页面中的显示和行为。在doStartTag() 方法中,我们可以确定继续执行标签的方式,例如执行标签主体或直接跳过。在doEndTag() 方法中,我们可以执行一些清理动作并确定标签的离开方式。
5.if标签:
if
标签可以根据给定的条件决定哪些部分应该在JSP页面中显示或隐藏。
6.set/out标签
set标签:
<c:set>
标签的作用是设置属性,相当于执行request.setAttribute(name,value)
指令。
<c:set>
标签最重要的属性是name和value,其中:
- name属性表示变量的名字,是一个字符串类型的值。这个绑定变量的名字必须是唯一的。
- value属性是变量的值。
- 如果不满足条件,则该变量不设置值。
out标签:
<c:out>
标签是JSTL标准标签库中的一个常用标签,专门用来在JSP页面中输出文本、变量及表达式的值。它类似于<%= %>
标签,但具有更多的灵活性和安全性。
<c:out>
标签支持以下属性:
- value:要输出的内容,可以是文本、变量或表达式。
- escapeXml:用于指定是否需要对输出内容进行 HTML 转义,默认为 true。
- default:如果输出内容为null或空字符串,则显示默认值。
- scope:用于指定查找变量的作用域,可以是page、request、session或application。