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主要的标签分类
核心标签库
国际化标签库
SQL标签库
XML标签库
函数标签库
jsp----标签编程(JSTL)的更多相关文章
- java web 学习笔记 - JSP标签编程
1.JSP标签编程简介 标签编程在开发中并不常见,主要是为了更好的理解struts等框架的标签而打基础,完善相关知识体系. 标签编程分为: 一个继承自TagSupport的标签类,一个在WEB-INF ...
- jsf标签,jsp标签与jstl标签
JSF通过定制标签与JSP集成.之前展示过的所有 JSF标签,<h:inputText>.<h:outputText>.<h:form> 和<f:view&g ...
- JSP标签和JSTL
Java的5个标签库:核心(c).格式化(fmt).函数(fn).SQL(sql).XML(x) SQL.XML库不推荐使用 核心标签库(c) //taglib指令 <%@ taglib pre ...
- JSP标签和JSTL标签注意点
1.转发和重定向问题 当前项目:/Test 转发路径:"/"根目录表示当前项目"/Test","/login.jsp"就是"/Te ...
- JSP标签、JSTL标签、EL表达
JSP页面转发,附带数据 <jsp:forward page="/jsptag2.jsp"> <jsp:param name="name" v ...
- JSP标签编程--简单标签
javax.servlet.jsp.tagext里的类SimpleTagSupport 使用SimpleTagSupport类一网打尽以往复杂的标签开发,直接使用doTag()方法 java文件: p ...
- JSP 标准标签库(JSTL)
JSP 标准标签库(JSTL) JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签, ...
- jsp页面中jstl标签详解
JSLT标签库,是日常开发经常使用的,也是众多标签中性能最好的.把常用的内容,放在这里备份一份,随用随查.尽量做到不用查,就可以随手就可以写出来.这算是Java程序员的基本功吧,一定要扎实. JSTL ...
- 自定义标签 与 JSTL(JSP Standard Tag Library)
1.自定义标签 [理解] [1]简介 > 在JSP2.0以后,在jsp页面中不建议使用脚本片段<% %>和JSP表达式<%= %> ...
- 【转】jsp页面中jstl标签详解
原文地址: JSLT标签库,是日常开发经常使用的,也是众多标签中性能最好的.把常用的内容,放在这里备份一份,随用随查.尽量做到不用查,就可以随手就可以写出来.这算是Java程序员的基本功吧,一定要扎实 ...
随机推荐
- 【Windows】DOS的常用命令
cmd[[{/c|/k}][/s][/q][/d][{/a|/u}][/t:fg][/e:{on|off}][/f:{on|off}][/v:{on|off}]string] 参数 /c 执行stri ...
- You've implemented -[<UIApplicationDelegate> application:didReceiveRemoteNotification:fetchCompletionHandler:], but you still need to add "remote-notification" to the list of your supported UIBackgrou
最近有个同事问我,他工程运行时就会有如下提示,但是不影响功能:You've implemented -[<UIApplicationDelegate> application:didRec ...
- mysql - tmp_table_size & max_heap_table_size
Command-Line Format --tmp_table_size=# System Variable Name tmp_table_size Variable Scope Global, Se ...
- 【转】Swift 语言的设计错误
Swift 语言的设计错误 在『编程的智慧』一文中,我分析和肯定了 Swift 语言的 optional type 设计,但这并不等于 Swift 语言的整体设计是完美没有问题的.其实 Swift 1 ...
- selenium实战脚本集(2)——简单的知乎爬虫
背景 很多同学在工作中是没有selenium的实战环境的,因此自学的同学会感到有力无处使,想学习但又不知道怎么练习.其实学习新东西的道理都是想通的,那就是反复练习.这里乙醇会给出一些有用的,也富有挑战 ...
- 关于PKCS的文档资料
关于PKCS的文档资料,在这里查找: http://www.emc.com/emc-plus/rsa-labs/standards-initiatives/public-key-cryptograph ...
- Groovy 学习手册(2)
二. 工具 1. 控制台 groovyConsole: Groovy 控制台是一个非常易于使用和简单的轻量级的编辑器.你可以在里面做很多事情. 在编辑器里面可以书写代码,Windows 下,按下Ctr ...
- struts系列:校验(一)XML校验和函数方法校验
一.jsp示例 <form action="login" method="post"> <div class="form-group ...
- 将逗号分隔的字符串与List互转
将逗号分隔的字符串与List互转 方法 1: 利用JDK的Arrays类String str = "a,b,c";List<String> result = Array ...
- Android开发中的神坑和知识点记录
1.SDK Manager.exe闪退的问题 http://blog.csdn.net/fambit025/article/details/26984345 1.找到android.bat,在源码处找 ...