native2ascii -encoding utf-8 resources_t.properties resources_zh_CN.properties
JSTL(JavaServer Pages Standard Tag Library)
包括5個標記庫
.Core標記庫
.Format標記庫
.XML標記庫
.SQL標記庫
.Function標記庫
最新的版本:JSTL1.2
Java EE 5的標準技術
Core http://java.sun.com/jsp/jstl/core c //核心標記庫,處理循環,變量
Format http://java.sun.com/jsp/jstl/fmt fmt //時間日期,國際化
SQL http://java.sun.com/jsp/jstl/sql sql //SQL操作
XML http://java.sun.com/jsp/jstl/xml xml //xml操作
Function http://java.sun.com/jsp/jstl/function fn //字符串有關的操作
例子程序
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
用戶名:<c:out value="${username}"/>
下載安裝JSTL
http://www.apache.org/dist/jakarta/taglibs/standard/
MYEXCLIPSE 已經有了JSTL
Core標記庫
操作變量:out,set,remove.catch
條件操作:if,choose,when,otherwise
循環操作:forEach,forTokens
URL操作:import,url,redirect,param
語法
<c:out value="value" [escapeXml="{true|false}"] default="defaultValue"]/>
或者<c:out value="value" [escapeXml="{true|false}"]>
</c:out>
屬性
屬性名 描述 EL 必須 缺省值
value 需要輸出的值,可以是EL表達式或常量 可以 是 無
default value值為空時所輸出的內容 可以 否 無
escapeXml 為true對輸出內容中的<,>,',",和&字符進行轉義,分別轉成<,>,',"
和"和&.為false就不進行轉義 可以 否 true
語法
<c:set var="name" value="value"/>
<c:set var="name" value="value>
</c:set>
<c:set value="value" target="target" property="propertyName"/>
<c:set target="target" property="propertyName">
value
</c:set>
屬性 描述 EL 是否必須 缺省值
value 要保存的內容,可以是EL表達式 可以 是 無
target 要修改屬性的對象名,一般為JavaBeans對象名 可以 否 無
property 要修改的JvaBeans的屬性 可以 否 無
var 要保存內容的變量名 否 是 無
scope 要保存內容的變量的作用范圍 否 否 page
<c:remove var="name" scope="page|request|session|application"/>
屬性
屬性名 描述 EL 是否必須 缺省值
var 被刪除的變量名字 否 是 無
scope 被刪除變量的作用范圍 否 否 page,request,session,application//依次查
捕獲違例
語法
<c:catch var="name">
body content
</c:catch>
屬性 描述 EL 是否必須 缺省值
var 用來保存違例信息的變量名 否 否 無
語法
<c:if test="condition" var="name" scope="page|request|session|application"/>
<c:if ....>
</c:if>
屬性 描述 EL 是否必須 缺省值
test 判斷所要使用的條件 可以 是 無
var 保存條件結果的變量的名稱 否 否 無
scope 保存條件結果的變量的作用范圍 否 否 page
<c:choose>
body content(<when>and<otherwise>)
</c:choose>
<c:when test="condition">
body content
</c:when>
屬性 描述 動態 是否必須 缺省值
test 如果它的結果為true,執行<c:when>所 可以 是 無
包含的內容,false則不執行<c:when>
所包含的內容
<c:otherwise>
body content
</c:otherwise>
<c:forEach var="name" items="collection" varStatus="varStatusName" begin="begin" end="end"
step="step">
body content
</c:forEach>
屬性 描述 EL 是否必須 類型 缺省值
begin 開始下標 可以 否 int 0
end 結束下標 可以 否 int 集合中的最后一個成員索引
step 步長 可以 否 int 1
var 代表當前成員的變量名 否 否 String 無
items 進行循環的集合 否 否 String數組MapCollectiontIteratorEnumeration無
varStatus 顯示循環狀態的變量 可以 否 String 無
使用varStatus屬性
名稱 類型 描述
index int 現在所操作的成員的索引
count int 總共所操作的成員的總數
first boolean 現在所操作的成員,是否為第一個成員
last boolean 現在所操作的成員,是否為最后一個成員
對字符串進行分割
<c:forTokens items="stringOfTokens" delims="delimiters" [var="name"] [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]>
body content
</c:forTokens>
屬性 描述 EL 是否必須 缺省值
items 進行迭代處理的變量 可以 是 無
delims 分割符號 可以 是 無
begins 開始下標 可以 否 0
end 結束下標 可以 否 集合中的最后一個成員的索引
step 步長 可以 否 1
屬性 描述 EL 是否必須 缺省值
var 代表當前成員的變量的名稱 否 否 無
varStatus 包含遍歷狀態的變量 否 否 無
把另外一個頁面的內容引到當前頁面來
<c:import url="url" [content="content"] [var="name"] [scope="{page|request|session|applocation}"] [charEncoding="charEncoding"]>
<c:param>
</c:import>
<c:import url="url" [context="context"] varReader="varReaderName" [charEncoding="charEncoding"]>
body content
</c:import>
屬性 描述 EL 是否必須 缺省值
url 需要導入頁面的url地址 是 是 無
context 本地Web應用的名字 是 否 當前應用的名字
charEncoding 設置導入數據的字符編碼 是 否 ISO-8859-1
var 接受導入文本的變量名稱 否 否 無
scope 接受導入文本內容的變量的作用范圍否 否 page
varReader 用于接受導入文本的java.io.Reader變量的名稱 否 否 無
<c:url value="value" [context="context"] [var="name"] [scope="{page|request|session|application}"]/>
<c:url value="value" [context="context"] [var="name"] [scope="{page|request|session|application}"]>
<c:param/>
</ c:url>
屬性 描述 EL 是否必須 缺省值
value url地址 是 是 無
context Web應用的名字 是 否 當前Web應用的名字
var 保存url地址的變量的名稱 否 否 輸出到當前頁面
scope 存儲url地址的變量的作用范圍 否 否 page
<c:redirect url="value" [context="context"]/>
<c:redirect url="value" [context="context"]>
<c:param/>
</c:redirect>
屬性 描述 是否必須 缺省值
url url地址 是 無
context 要轉向到的Web應用的名字 否 當前Web應用的名字
format
國際化有關
setLocale,requestEncoding,bundle,message,param,setBundle
時間日期有關,這些功能不在JSP頁面實現,所以下面標記不常用
formatNumber,formatDate,parseDate,parseNumber,setTimeZone,timeZone
<fmt;setLocale value="locale" [variant="variant"] [scope="{page|request|session|application}"/>
屬性 描述 EL 是否必須 缺省值
value 表示該語言環境的一個字符串,或者是 可以 是 無
java.util.Locale類的對象
scope 指定這個對象的作用范圍,有效 否 否 page
值為:page,request,session,
application
variant 進一步針對特定的平臺或供應商定 可以 否 無
語言環境.例如,MAC和WIN分別對應Macintosh
和Windows平臺
<fmt:setBundle basename="basename" [var="name"] [scope="{page|request|session|application}"]/>
屬性 描述 EL 是否必須 缺省值
basename 設置使用的資源文件束文件的路徑和名稱 可以 是 無
不應當包含任何本地化后綴或文件擴展名
var 設置了該屬性,那么將把由basename屬性所 否 否 無
標識的資源束賦給該屬性值所命名的變量
scope 指明缺省資源束設置所應用的JSP作用域 否 否 page
<fmt:Bundle basename="base" [prefix="prefix"]/>
body content
</fmt:bundle>
屬性 描述 EL 是否須 缺省值
basename 設置使用的資源束文件的路徑與名稱,不應當包含 可以 是 無
任何本地化后綴或文件擴展名
prefix 為所嵌套的<fmt:message>標記的key值指定缺省前綴 可以 否 無
<fmt:message key="messageKey" [bundle="resourceBundle"][var="name"][scope="{page|request|session|application}"]/>
<fmt:message [bundle="resourceBundle"] [var="varNmae"] [scope="{page|request|session|application}"]>
key
[<fmt:param>]
</fmt:message>
屬性 描述 EL 是否必須 缺省值
key 用來確定在資源束中定義哪個文本消息進行輸出顯示 可以 是 無
bundle 用來指定一個顯式的資源束,用來查找由key屬性標識的消息 可以 否 無
請注意,該屬性的值必須是實際的資源束,比如當指定
<fmt:setBundle>操作的var屬性時由該標記所賦予的資源束
<fmt:message>的bundle屬性不支持字符串值
var 該標記所生成的文本消息賦給指定的變量,而不是輸出到JSP頁面 否 否 無
中
scope 用來指定由var屬性指定的變量的作用域,有效值:page,request 否 否 page
和application
<fmt:requestEncoding [value="charsetName"]/>
作用request.setCharsetEncoding("");
<fmt:param value="messageParameter"/>
<fmt:param>
body content
</fmt:param>
>native2ascii -encoding utf-8 displaytag_1.properties displaytag_zh_CN.properties
SQL標記庫
<sql:setDataSource>
<sql:query>
<sql:param>
<sql:dateParam>
<sql:update>
<sql:transaction>
XML標記庫 不建議在表現層使用
<x:set><x:out><x:when><x:choose><x:otherwise><x:if><x:if><x:forEach><x:param><x:parse><x:transform>
Functions標記庫
fn:length(item)
返回參數item中包含元素的個數,參數item類型可以是數組,Collection或者Stringl.如果是String類型返回是字符串中的字符個數
${fn:length("lichao")}
fn:contains(String,subString)
用來判斷源字符串是否包含子字符串
${fn:contains("lichao","li")}
fn:containsIgnorCase(String,subString)
與fn:contains()函數的功能差不多,區別是該函數對于子字符串的包含比較忽略大小寫
fn:endsWith(String,suffix)
用來判斷源字符串是否符合特定的詞尾
${fn:endsWith("lichao","chao")}
fn:escapeXml(String)
用于將特殊字符轉化為轉義以后的字符,返回轉換以后的字符串
${fn:escapeXml("<test>"}
fn:indexOf(String,subString)
用于取得子字符串與源字符串匹配的開始位置,若子字符串與源字符串中的內容沒有匹配成功將返回-1
${fn:indexOf("lichao","ic")}
fn:join(array,separator)
為一個字符串組中的每個字符串加上分隔符,并連接起來
${fn:join(array1,"")}
fn:replace(String,before,after)
為源字符串做替換
${fn:replace("lichao","li","LI")
fn:split(String,separator)
將一組由分隔符的字符串轉換成字符串數組
${fn:split(a,e,i),","}
fn:startsWith(String,prefix)
用來判斷源字符串是否符合特定開頭
${fn:startsWith("lichao","li")}
fn:substring(String,begin,end)
截取字符串
${fn:substring("lichao",1,3)}
fn:substringAfter(String,substring)
返回參數substring在參數string中后面的那一部分字符串
${fn:substringAfter("lichao","ic"}
fn:substringBefore(string,substring)
返回參數substring在參數string中前面的那一部分字符串
${fn:substringBefore("lichao","ic"}
fn:toLowerCase(string)
將源字符串中的字符全部轉換成小寫字符
${fn:toLowerCase(lichao)}
fn:toUpperCase(string)
將源字符串中的字符全部轉換成大寫字符
${fn:toUpperCase(LICHAO)}
fn:trim(string)
刪除源字符串中開始與結尾的空格
${fn:trim("li chao")}
柴油發電機
發電機
柴油機
柴油發電機
13636374743(上海)
13291526067(嘉興)