程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> JSP中的JSTL、POJO、MVC

JSP中的JSTL、POJO、MVC

編輯:關於JSP

1 JSTL JSTL(JSP Standard Tag Library ,JSP標准標簽庫)是一個不斷完善的開放源代碼的JSP標簽庫,是由apache的jakarta小組來維護的。   1.1 JSTL的作用 JSTL 有助於加速開發周期,極大地簡化了 JSP 應用程序的開發和維護。   1.2 JSTL的使用 將jstl.jar和 standard.jar文件放到classpath中,如果你還需要使用XML processing及Database access (SQL)標簽,還要將相關JAR文件放到classpath中,在JSP頁面頭部加入<%@ taglib prefix="..." uri="..." %>,然後在這個JSP頁面中就可以使用這個引入的標簽了。   1.3 JSTL中常用標簽 核心標簽庫、國際化標簽(I18N)   1.3.1 核心標簽庫 Core 標簽庫主要包括了一般用途的標簽、條件標簽、迭代標簽和 URL 相關的標簽。在 JSP 頁面使用 Core 標簽,要使用 taglig 指令,指定引用的標簽庫,如下:    <%@ taglib uri=”http://java.sun.com/jsp/jstl/core”  prefix=”c” %>   out標簽 <c:out>的功能與JSP中的<%= 表達式%>類似,用於向頁面輸出,其語法格式分為如下五種:   通過在<c:out>中的value屬性指定需要顯示的值。<c:out value="value"/> 通過escapeXml屬性設置是否將value中的內容按照原樣輸出。因為<c:out>默認會將<、>、’、”、&轉換成<、>、'、"和&。如果不想轉換,只需要設定escapeXml屬性為“false”。<c:out value="value" escapeXml="true | false"/> 通過default屬性來指定默認值。如果value的值為null時,則顯示default的值。<c:out value="value" default="No data"/> 通過本體內容來指定默認值。如果value的值為null時,則顯示default的值。<c:out value="value" escapeXml="true | false"/>本體內容</c:out> set標簽 .<c:set>用於設置范圍變量的值或者 javabean 對象的屬性,其語法格式分為如下五種:   指定變量名以及變量值,不指定scope(范圍)。<c:set var="username" value="value"></c:set> 將value的值儲存到范圍為scope的變量中。<c:set var="username" value="value" scope=”page | request | session | application”></c:set> 將本體內容的數據儲存至范圍為scope的變量中。<c:set var="varname" scope=”page | request | session | application”>本體內容</c:set> 將value值儲存到targer對象的屬性中。<c:set value=”value” target=”target” property=”propertyName”></c:set> 將本體內容的數據儲存到targer對象的屬性中。<c:set target=”target” property=”propertyName”>本體內容</c:set remove標簽 <c:remove>用來移除指定范圍的變量。其語法格式如下:   <c:remove var=”number” scope=”session”>,var屬性指定待刪除變量的名稱,scope屬性是可選的,用來指定刪除變量的范圍,缺省為page。   if標簽 <c:if>標簽用來執行流程控制,其功能和Java語言中的if完全相同。<c:if>標簽有兩種語法格式:一種沒有本體內容,一種有本體內容。   沒有本體內容的<c:if>標簽格式如下。<c:if test = ”testCondition” var=”varName”  [scope=”{page | request | session | application}]” />其中test屬性是必須填寫的,表示進行判斷的表達式。屬性var定義變量,該變量存放判斷後的結果。scope表示var定義變量儲存的范圍。 有本體內容的<c:if>標簽格式如下。<c:if test = ”testCondition” var=”varName”  [scope=”{page | request | session | application}]” >本體內容</if>其中test屬性是必須填寫的,當test中表達式的結果為true時,則會執行本體內容;如果為false則不會執行。 choose、when、otherwise標簽 <c:if>標簽只能判斷一個表達式,而且無法指定如果表達式不成立執行語句。JSTL同樣提供了類似於if....else....的語句<c:choose>標簽。<c:choose>中可以有一個或多個<c:when>標簽,有零個或多個<c:otherwise>標簽。其語法格式如下:   <c:choose>   <c:when test = ”testCondition”>   </c:when>   ...   <c:oherwise>   </c:oherwise>   </c:choose>   forEach標簽 <c:forEach>標簽兩種語法格式。一種用來遍歷集合對象的成員,一種用來使語句循環執行指定次數。   <c:forEach>遍歷集合對象的成員,語法格式如下:<c:forEach [var=”varname”] items=”collection” [varStatus=”varStatusName”] [begin=”begin”] [end=”end”] [step=”step”]>本地內容</forEach>,其中“var”用來存放現在指到的成員;“items”指被迭代的集合對象;“varStatus”用來存放現在指到的相關成員的信息;“begin”表示開始位置(默認為0);“end”表示結束位置。“step”表示步長(默認為1)。 <c:forEach>指定語句執行次數,其語法格式如下:<c:forEach [var=”varname”] [varStatus=”varStatusName”] [begin=”begin”] [end=”end”] [step=”step”]>本地內容</forEach> forTokens標簽 <c:forTokens>用來根據指定分隔符分割字符串。其語法格式如下:   <c:forTokens [var=”varname”] items=”stringOfTokens” delims=”delimiters” [varStatus=”varStatusName”] [begin=”begin”] [end=”end”] [step=”step”]>本地內容</c:forTokens>   其中“var”、“varStatus”、“begin”、“end”、“step”屬性和<c:forEach>標簽中用法一樣。“items”屬性表示被分割的字符串,“delims”屬性指定分隔符。<c:forTokens>不僅可以分割僅有一個分隔符的字符串,也可以通過設定多個分割符來分割有多個分隔符的字符串,只需要設置多個分隔符就可以了。   import標簽 <c:import>可以把其他靜態或動態的文件包含到本身的JSP網頁中。它和JSP動作指令的<jsp:include>最大的差別在於:<jsp:include>只能包含和自己在同一Web application下的文件;而<c:import>除了能夠包含和自己的同一Web application的文件外,也可以包含不同Web application或者其他網站的文件。<c:import>的語法格式如下:   <c:import url=”url” [context=”context”] [var=”varName”] [scope=”{page | request | session | application}”] [charEncoding=”charEncoding”]>本體內容</c:import>或   <c:import url=”url” [context=”context”] varReader=”varReaderName” [charEncoding=”charEncoding”]>本體內容</c:import>   param標簽 <c:param>標簽用來傳遞參數,其包含兩個參數name和value。< c:param>的語法格式如下:   <c:param name=“參數名” value=“參數值”>   1.3.2 國際化標簽(I18N) 在JSP頁面中要使用到格式化標簽,必須使用<%@taglib%>指令,指定格式化標簽。代碼如下:   <%@ taglib  prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>   formatNumber標簽 <fmt: formatNumber>會根據區域或是定制的方式將數字格式化成數字、貨幣或百分比。語法分為兩種,一種是沒有本體內容,使用value屬性來指定要格式化的數字;一種有本體內容,使用本體內容來指定要格式化的數字。格式如下:   <fmt:formatNumber  value=”number” [type={number | currency | percent}]   [pattern=”pattern”]   [currencyCode=” currencyCode”]   [currencySymbol=” currencySymbol”]   [groupingUsed=”{true | false}”]   [maxIntegerDigits=” maxIntegerDigits”]   [minIntegerDigits=” minIntegerDigits”]   [maxFractionDigits=” maxFractionDigits”]   [minFractionDigits=” minFractionDigits”]   [var=”varName”]   [scope=”{page | request | session | application}”]   />   parseNumber標簽 <fmt: parseNumber>用來將字符串類型的數字、貨幣或百分比轉換成數字類型。和<fmt: formatNumber>標簽的作用正好相反。語法同樣分為兩種,一種是沒有本體內容,使用value屬性來指定要轉換成數字的字符串;一種有本體內容,使用本體內容來指定轉換成數字的字符串。格式如下:   <fmt: parseNumber  value=”numberString” [type={number | currency | percent}]   [pattern=”pattern”]   [parseLocale=” parseLocale”]   [integerOnly=”{false | true}”]   [var=”varName”]   [scope=”{page | request | session | application}”]   />    formatDate標簽 <fmt: formatDate>會根據區域或是定制的方式將日期或時間格式化,用來將日期類型轉化成字符串類型日期。其語法格式如下:   <fmt: formatDate  value=”number” [type={time | date | both}]   [pattern=”pattern”]   [dateStyle=”{default | short | medium | long | full}”]   [timeStyle=”{default | short | medium | long | full}”]   [timeZone=” timeZone”]   [var=”varName”]   [scope=”{page | request | session | application}”   ]/>    parseDate標簽 <fmt: parseDate>用來將字符串類型的時間或日期轉換成日期時間類型。和<fmt: formatDate>標簽的作用正好相反。語法同樣分為兩種,一種是沒有本體內容,使用value屬性來指定要轉換成日期時間的字符串;一種有本體內容,使用本體內容來指定轉換成日期時間的字符串。格式如下:   <fmt: parseDate  value=”date” [type={time | date | both}]   [pattern=”pattern”]   [dateStyle=”{default | short | medium | long | full}”]   [timeStyle=”{default | short | medium | long | full}”]   [timeZone=” timeZone”][var=”varName”]   [scope=”{page | request | session | application}”]   />    setTimeZone標簽 <fmt: setTimeZone>用來設定默認時區或者是將時區儲存到屬性范圍中。其語法格式如下:   <fmt:setTimeZone  value=”timeZone” [var=”varName”][scope=”{page | request | session | application}”]/>   timeZone標簽 <fmt: timeZone>用來暫時的設定時區。其語法格式如下:   <fmt:timeZone  value=”timeZone”>本體內容</fmt:setTimeZones>   setLocale標簽 <fmt: setLocale>標簽用來設定用戶的區域語言。這裡所指的區域語言是指用戶所在地區使用的語言種類以及國家和地區的綜合。比如中國內地所使用的語言為中文,語言代碼為“zh”,而地區代碼為“cn”,所以中國內地的語言區域為“zh_cn”。<fmt:setLocale>的語法格式如下:   <fmt:setLocale value=”locale” [variant=”variant”][scope=”{page | request | session | application}”]/>   requestEncoding標簽 <fmt: requestEncoding>用來設定接受的字符串的編碼格式,與request.setCharacterEncoding()功能一樣。<fmt: requestEncoding >的語法格式如下:   <fmt: requestEncoding value=”charseName”/>   setBundle標簽 <fmt: setBundle>用來設定默認的數據來源,也可以將儲存到一定范圍中,供需要時使用。<fmt: setBundle>的語法格式如下:   <fmt: setBundle basename=” basename” [var=”varName”][scope=”{page | request | session | application}”]/>   message標簽 <fmt: message>用來從指定的資源文件中通過索引(key)取得值(value)。其語法分為兩種,一種是沒有本體內容,使用key屬性來指定要索引;一種有本體內容,使用本體內容來指定索引。語法格式如下:   <fmt: message key=”messageKey” [bundle=”resourceBundle”][var=”varName”][scope=”{page | request | session | application}”]/>   param標簽 當從資源文件中取得信息時,可能需要動態設定參數,例如用戶名等。這是就需要通過<fmt:param>來傳遞參數。其語法分為兩種,一種是沒有本體內容,使用value屬性來指定要參數值;一種有本體內容,使用本體內容來指定參數值。語法格式如下:   沒有本體內容,<fmt:param value=”messageParameter”/>   有本體內容,<fmt:param value=”messageParameter”>參數值</fmt:param>   bundle標簽 <fmt: bundle>同樣用來設定數據來源,但是與<fmt: setBundle>不同的是,<fmt: bundle>設定數據來源只對本體內容中的標簽有效。其語法格式如下:<fmt:bundle basename=”basename” [prefix=”prefix”]>本體內容{<fmt:message>}</fmt:bundle> message<fmt: setLocale>標簽用來設定用戶的區域語言。這裡所指的區域語言是指用戶所在地區使用的語言種類以及國家和地區的綜合。比如中國內地所使用的語言為中文,語言代碼為“zh”,而地區代碼為“cn”,所以中國內地的語言區域為“zh_cn”。<fmt:setLocale>的語法格式如下。<fmt:setLocale value=”locale” [variant=”variant”][scope=”{page | request | session | application}”]/>timeZoneformatDateparseNumberformatNumber   2 POJO POJO:POJO(Plain Old Java Objects)簡單的Java對象,實際就是普通JavaBeans,是為了避免和EJB混淆所創造的簡稱。www.2cto.com   使用POJO名稱是為了避免和EJB混淆起來, 而且簡稱比較直接. 其中有一些屬性及其getter setter方法的類,沒有業務邏輯,有時可以作為VO(value -object)或dto(Data Transform Object)來使用.當然,如果你有一個簡單的運算屬性也是可以的,但不允許有業務方法,也不能攜帶有connection之類的方法。 POJO實質上可以理解為簡單的實體類,顧名思義POJO類的作用是方便程序員使用數據庫中的數據表,對於廣大的程序員,可以很方便的將POJO類當做對象來進行使用,當然也是可以方便的調用其get,set方法。 3 MVC 3.1 什麼是MVC MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設計典范,用於組織代碼用一種業務邏輯和數據顯示分離的方法。   3.2 MVC的作用 MVC是一個框架模式,它強制性的使應用的輸入、處理和輸出分開,便於開發和維護。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved