JSPのカスタムタグ(一)


1.ガイド
最近深センのある有名な企業に勤めていて、支払いシステムに触れています.システムのフレームワークはすべて会社独自のアーキテクチャなので、jspページで使われているラベルもカスタマイズされています.JSPのカスタマイズラベルを知らない同僚にとって、会社の技術がすごいと思いますが、JSPのカスタマイズラベルを勉強した後、そう思うかどうかは、あなた次第です.以下、JSPのカスタムタグについて説明します.主にJSP 2のカスタムタグについて説明します.
2.一般的なカスタムラベルの開発
2.1開発手順
1)カスタムラベル処理クラスの開発
2)*を作成する.tldファイル、各*.tldファイルは1つのラベルライブラリに対応し、各ラベルライブラリには複数のラベルを含めることができる.
3)JSPファイルにカスタムタグを使用する
2.2開発例(一般)
1)ラベル類HelloWorldTagを作成する.java.このクラスは親javaxを継承します.servlet.jsp.tagext.SimpleTagSupport.,また、ラベルの要件は次のとおりです.
(a)ラベルクラスに属性が含まれている場合、各属性には対応するgetterメソッドとsetterメソッドがあります.
(b)ページコンテンツの生成を担当するdoTag()メソッドを書き換える
 public class HelloWorldTag extends SimpleTagSupport
{
	//   doTag()  ,            
	public void doTag()throws JspException,
		IOException
	{
		//        ,      
		getJspContext().getOut().write("Hello World "
			+ new java.util.Date());
	}
}

2)TLDファイルの作成
TLDファイルはラベルライブラリファイルなので、ラベルライブラリのルート要素はtaglibですが、複数のtagサブ要素が含まれています.T omcat 8.0のwebappsexamplesWEB-INFjsp 2の下にjsp 2-example-taglibがあります.tldファイル、これはTLDファイルの例です.次はmytaglibです.tldは、WebのWEB/パスの下に置きます.
<?xml version="1.0" encoding="GBK"?>

<taglib xmlns="http://xmlns.jcp.org/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
	http://xmlns.jcp.org/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
	version="2.1">
	<tlib-version>1.0</tlib-version>
	<short-name>mytaglib</short-name>
	<!--        URI -->
	<uri>http://www.linjw.taglib/mytaglib</uri>

	<!--         -->
	<tag>
		<!--       -->
		<name>helloWorld</name>
		<!--         -->
		<tag-class>com.linjw..HelloWorldTag</tag-class>
		<!--         -->
		<body-content>empty</body-content>
	</tag>
</taglib>

3)ラベルライブラリの使用
(a)ラベルライブラリを使用するには、主に2つの側面があります.
Øラベルライブラリのインポート:taglibコンパイルコマンドを使用してラベルライブラリをインポートすることは、ラベルライブラリと指定した接頭辞を関連付けることです.
Ø使用ラベル:JSPページでカスタムラベルを使用する
(b)taglibを使用する構文フォーマットは次のとおりです.
<%@ taglib uri=”tagliburi” prefix=”tagPrefix”%>
(c)ラベルを使用する構文フォーマットは以下の通りである.
       
           
       

(d)次はhelloWorldTag.jsp
 <%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>
<!--      ,  mytag     ,
	 URI http://www.linjw.taglib/mytaglib       -->
<%@ taglib uri="http:// /www.linjw.taglib/mytaglib " prefix="mytag"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<title>       </title>
	<meta name="website" content="http://www.crazyit.org" />
</head>
<body bgcolor="#ffffc0">
<h2>               </h2>
<!--      ,  mytag     ,  taglib     ,
	mytag    URI http:/ /www.linjw.taglib/mytaglib       -->
<mytag:helloWorld/><br/>
</body>
</html>