zoukankan      html  css  js  c++  java
  • 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中最重要的部分,也是在开发中最常使用到的部分,在核心标签库里主要完成的就是流程控制、迭代输出等操作 

    国际化标签库 

    国际化是程序的重要组成部分,一个程序可以根据所在的区域进行相应信息显示,例如:各个地区的数字、日期显示风格都是不一样的,在JSTL中使用fmt.tld作为格式化标签库的定义文件。 

    SQL标签库 

     

    XML标签库 

    在开发中XML解析的操作是非常烦琐的,幸运的是在JSTL中专门提供了用于XML解析的操作,这样用户就可以不用费力的去研究SAX或DOM等操作的使用,就可以轻松的进行XML文件的解析处理。 

    函数标签库 

  • 相关阅读:
    sql函数 StringSplit(SELECT * from Split('黄色,蓝色,黑色',','))
    跨表循环写插入sql语句
    将ExCel导入数据库
    行转列
    js正则匹配
    ASP.NET下载远程图片保存到本地的方法、保存抓取远程图片
    C# 解析json类型字符串
    上传图片
    存储过程学习
    //js验证数字输入,以及保留俩位
  • 原文地址:https://www.cnblogs.com/oumyye/p/4288880.html
Copyright © 2011-2022 走看看