【Jsp】JSP自己定義標籤與MODEL1、MODEL2標準

來源:互聯網
上載者:User

標籤:建立   顯示當前的時間   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標準

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.