標籤:建立 顯示當前的時間 target clip java 產生 利用 att 輸出
在JSP2.0之後支援自己定義標籤,如今一般都是jsp2.4的版本號碼了,所以無須考慮版本號碼的問題。
直接使用就能夠了。儘管一般開發的過程中,非常少會自己定義JSP標籤。可是通過一個JSP自己定義標籤的學習。能夠從一定程度上理解struts等架構把好好的JSP標籤改得面目全非的機理。正如Jquery本質是Javascript一樣,SSH實際上Jsp。事實上也沒有什麼,一個簡單的範例就能夠全然說明怎樣在JSP中自己定義的標籤。
通過自己定義標籤就行達到所謂的MODEL2標準。在展示層VIEW給別人看的網頁中不得出現不論什麼的server運行代碼。
假設出現了。就是那種MODEL1的標準。
一、基本目標
定義一個clock標籤,這個標籤還要求傳入一個ID。
之後。假設JSP之中使用這個標籤,傳入一個ID。就會在頁面顯示當前的時間與傳入的ID。例如以所看到的:
二、基本準備
這個東西不用引入不論什麼的jar。web.xml檔案能夠利用eclipse for javaee自己主動產生,刪除無用的東西,也不用配置不論什麼東西,JSP2.0之後就內建定義標籤庫的屬性,例如以下所看到的,web.xml自己主動產生的方法能夠參考《【Javaweb】Eclipse for JavaEE建立的Webproject自己主動產生web.xml》(點擊開啟連結)
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"></web-app>
網站目錄結構例如以,在WEB-INF下建立一個tags目錄,之後我們的標籤都是tags:了,這個目錄的命名決定了以後的標籤頭,這個目錄以後就是我們的標籤庫。理論上這個tags放在哪裡都能夠,可是。為了不讓別實用心的使用者胡亂訪問,所以還是放在WEB-INF之中:
三、製作過程
1、此次涉及到一個比較少見的,尾碼名為.tag的檔案,右擊剛剛建好tags目錄,選擇New->Other...,建立一個tag檔案。
2、在彈出的對話方塊。輸入tags,選擇JSP Tag,點擊下一步,命名為clock,因為clock.tag在tags裡面,以後調用這個標籤就tags:clock了。你的目錄與檔案名稱的名字決定了這個以後標籤的名字,就能夠開始編輯clock.tag了
3、clock.tag檔案例如以下所看到的,這個檔案就是用來說明這個檔案是幹什麼用。這就定義好tag:clock的動作了,ognl運算式裡面的s:if標籤,也就是這種道理,在s目錄下以下有個if.tag檔案,然後寫好這個if.tag所啟動並執行工作,先輸出目前時間,時間輸出的JAVA代碼與《【Java】有關System.currentTimeMillis()的思考》(點擊開啟連結)的一模一樣。絲毫沒改,然後把傳入來id以<h1></h1>來顯示,根本就一段HTML+JSP混寫的代碼
<!-- 改好網頁頭的編碼為utf-8,引入對應的java包 --><%@ tag language="java" pageEncoding="utf-8" import="java.util.Date,java.text.SimpleDateFormat"%><!-- 這個本標籤將會引入id參數 --><%@ attribute name="id" %><%//假設要在jsp指令碼中使用傳入參數則這樣寫request.getAttribute("a");//輸出時間out.println(new SimpleDateFormat("yyyy年MM月dd日hh:mm:ss E").format(new Date(System.currentTimeMillis())).toString());%><!-- 假設這個參數是直接輸出的,則這樣寫 --><h1>${id}</h1>4、在index.jsp對tags:clock標籤傳入參數“你好”。就會看到執行效果了。這樣就形成了所謂的MODEL2網頁編程規則,就是正常網頁中不得出現不論什麼的執行代碼……說什麼可以非常好地提高網頁代碼的複用性。
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>index</title></head><body><tags:clock id="你好" /></body></html>
【Jsp】JSP自己定義標籤與MODEL1、MODEL2標準