一、什么是标签
标记语言,是一种注释文本的语言,以便于计算机可以操作。很多与“ML”结尾的语言都是标记语言,比如:HTML,XML,XHTML,VML等等。标记语言与其他语言一样,也需要运行它们的环境,比如HTML的运行环境时浏览器,XML也要自己的解析和运行的环境。
基本结构:
<开始标签>标签体</结束标签>
<name>out</name>
空标签:
<开始标签 属性名="属性值"/></结束标签>
<action path="/studentAction" type="org.lisen.mvc.action.StudentAction"></action>
<开始标签 属性名="属性值"/>
<forward name="students" path="/students/studentList.jsp" redirect="false"/>
<br/><br/>
二、自定义标签
🔘JSP标签库是什么?
是一个JSP标签集合,它封装了JSP应用的通用核心功能, 基于JSP标签我们可以理解为,是JSP应该通用功能的一种封装方式。
🔘JSP自定义标签生命周期
实例化标签助手类之后就能调用doStartTag这个方法,随后查看这个方法的返回值,若这个返回值是EVAL_BODY_INCLUDE则说明其有标签体需要继续处理重新定义一个方法doAfterBody,查看该方法的返回值是否需要继续处理(返回值为EVAL_BODY_AGAIN再计算主体一次,EVAL PAGE计算页面的后续部分);若返回值是SKIP_BODY跳过主体进入结束标签,最后取消引用助手类。
了解助手类里面常量的意思
- SKIP_BODY:跳过主体
- EVAL_BODY_INCLUDE:计算标签主体内容并[输出]
- EVAL_PAGE:计算页面的后续部分
- SKIP_PAGE:跳过页面的后续部分
- EVAL_BODY_AGAIN:再计算主体一次
🔘如何自定义标签
常见自定义标签主要步骤:
- 编写助手类(继承BodyTagSupport)
- 编写标签库描述文件(tld)
- 在jsp页面上通过taglib指令导入标签库
注意:tld文件必须保存到WEB-INF目录或其子目录
🔘标签类型
- UI标签:输出页面元素 如:Input、table
- 控制标签: 如if标签,foreach标签等
- 数据标签:用于向页面输入数据 如:out标签
- 空标签:如:br、hr