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.ip_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>元素作用:
編寫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>標簽組成部分
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主要的標簽分類新聞熱點
疑難解答