jsp----标签编程(JSTL)
标签编程简介
JSP的开发是在HTML代码中嵌入了大量的Java代码,但是这样一来会使得JSP页面中充满了Java程序,修改或维护起来非常的不方便,
定义一个简单的标签----空标签
要想实现一个标签,可以直接继承javax.servlet.jsp.tagext.TagSupport类,如果要定义的标签内没有标签体,则直接覆写TagSupport类中的doStartTag()方法即可。
进行第一个hello程序
定义标签的操作类 —— HelloTag.java
package com.oumyye.tagdemo; import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.tagext.TagSupport; public class HelloTag extends TagSupport { @Override public int doStartTag() throws JspException { JspWriter out = super.pageContext.getOut(); // 取得页面输出流对象 try { out.println("<h1>Hello World!!!</h1>"); // 进行页面输出 } catch (Exception e) { // 此处产生异常,需要处理 e.printStackTrace(); } return TagSupport.SKIP_BODY; // 没有标签体 } }
定义标签描述文件 —— /WEB-INF/hellotab.tld
<?xml version="1.0" encoding="UTF-8"?> <taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_1.xsd" version="2.1"> <tlib-version>1.0</tlib-version> <!-- 表示标签库的版本 --> <short-name>firsttag</short-name> <!-- 为标签库在TLD中的描述名称 --> <tag> <name>hello</name> <!-- 表示标签在JSP中的使用名称 --> <tag-class> com.oumyye.tagdemo.HelloTag </tag-class> <!-- 表示这个标签所指向的class文件 --> <body-content>empty</body-content> <!-- 表示标签体内容为空 --> </tag> </taglib>
元素作用:
- <taglib>:TLD文件的根元素,里面可以定义多个<tag>元素;
- <tlib-version>:表示标签库的版本,用于开发和配置管理;
- <short-name>:一个标签的短名称,主要用于标签的编写工作;
- <tag>:描述标签库中的每一个标签;
- <name>:标签的名称;
- <tag-class>:标签处理类的路径;
- <body-content>:表示标签中是否包含标签体,如果是empty表示标签体为空。
编写JSP页面并调用标签 —— hellotag.jsp
<%@ page contentType="text/html;charset=UTF-8"%> <%@ taglib prefix="mytag" uri="/WEB-INF/hellotag.tld"%> <html> <head> <title> 偶my耶</title> </head> <body> <h1><mytag:hello/></h1> <!-- 访问标签--> </body> </html>
web.xml配置
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <jsp-config> <taglib> <taglib-uri>http://www.helloweenvsfei.com/tags</taglib-uri> <taglib-location>/WEB-INF/hellotag.tld</taglib-location> </taglib> </jsp-config> </web-app>
标签组成部分
- 标签处理类:HelloTag.java;
- 标签描述文件:hellotag.tld;
- JSP页面:通过<%@taglib%>定义标签;
- (可选)在web.xml文件中配置映射名称。
下面我们介绍JSP的标准标签库(JSTL)
JSTL简介:JSTL(JSP Standard Tag Library,JSP标准标签库)是一个开放源代码的标签组件,由Apache的Jakarta小组开发,可以直接从http://tomcat.apache.org/taglibs/下载 ,下载来的JSTL.是以jar包的形式存在的,直接将此Jar包保存在WEB-INF/lib目录之中,之后可以直接通过WINRAR工具打开此JAR包,并且将里面的META-INF文件夹中的几个主要标签配置文件:c.tld、fmt.tld、fn.tld、sql.tld、x.tld保存在WEB-INF文件夹之中
JSTL是一个第三方的开源标签库;
JSTL操作时需要自己手工配置,如果通过MyEclipse开发,则可以直接使用。
JSTL主要的标签分类
核心标签库
核心标签库是JSTL中最重要的部分,也是在开发中最常使用到的部分,在核心标签库里主要完成的就是流程控制、迭代输出等操作
![](http://images0.cnblogs.com/blog/707997/201502/122001285582145.png)
国际化标签库
国际化是程序的重要组成部分,一个程序可以根据所在的区域进行相应信息显示,例如:各个地区的数字、日期显示风格都是不一样的,在JSTL中使用fmt.tld作为格式化标签库的定义文件。
![](http://images0.cnblogs.com/blog/707997/201502/122003392295391.png)
SQL标签库
![](http://images0.cnblogs.com/blog/707997/201502/122011371203892.png)
XML标签库
在开发中XML解析的操作是非常烦琐的,幸运的是在JSTL中专门提供了用于XML解析的操作,这样用户就可以不用费力的去研究SAX或DOM等操作的使用,就可以轻松的进行XML文件的解析处理。
![](http://images0.cnblogs.com/blog/707997/201502/122013334178362.png)
函数标签库
![](http://images0.cnblogs.com/blog/707997/201502/122024238234392.png)
博客地址: | http://www.cnblogs.com/oumyye/ |
博客版权: | 本文以学习、研究和分享为主,欢迎转载,转载请务必注明出处,谢谢合作。 如果文中有不妥或者错误的地方请指出。如果觉得本文对你有所帮助不如【推荐】一下!如果你有更好的建议,不如留言一起讨论,共同进步! |