1. 程式人生 > >JSTL之

JSTL之

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<tbody>
<c:forEach var="instance" items="${requestScope.list}" varStatus="status">
	<c:choose>
		<c:when test="${status.index%2==0}" >//斑馬線
	   		<tr class="SelcetOff">
	   	</c:when>
		<c:when test="${status.index%2==1}" >
	   		<tr class="SelcetOn">
	   </c:when>
   	</c:choose>
   			<td><div align="center">${instance.userName}</div></td>
   			<td><div align="center">${instance.address }</div></td>
   			<td><div align="center">${instance.role }</div></td>
   			
		    </tr>
</c:forEach>
</tbody>

status.current 當前這次迭代的(集合中的)項
status.index 索引,從0開始,相當於for迴圈裡的i
status.count 計數器,從1開始
status.first 判斷是否是第一條
status.last  判斷是否是最後一條
status.begin 獲得開始時的記錄
status.end   獲得結束時的記錄
status.step  獲得步長

${requestScope.list}是一個List<User>,instance是其中的一個例項


<c:forEach items="${requestScope.winMap}" var="entry" varStatus="status" >
				
	<tr><td><c:out value="${entry.key}" />等獎</td><td><c:out value="${entry.value.winCount}" /></td><td><c:out value="${entry.value.winMoney}" /></td></tr>
	<c:if test="${!status.last}">
	<tr><td>追加</td><td><c:out value="${entry.value.winAddCount}" /></td><td><c:out value="${entry.value.winAddMoney}" /></td></tr>
	</c:if>
</c:forEach>

${requestScope.winMap}是一個Map<String,Win>,entry是其中的一個例項,${!status.last}表示不是最後一項



Map map=request.getParameterMap();
Iterator ite = map.entrySet().iterator();
while (ite.hasNext()) {
      Map.Entry mapEntry = (Map.Entry)_ite.next();
      request.setAttribute((String)mapEntry.getKey(), mapEntry.getValue());
}


可參考:
JSTL標籤用法 詳解
http://blog.csdn.net/zwhfyy/archive/2009/07/09/4335200.aspx

迭代
http://www.java2000.net/p3893

使用JSTL標籤格式化時間與貨幣形式
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>

<fmt:formatDate value="${date}" pattern="yyyy年MM月dd日 HH:mm:ss"/>

這裡的value值是你要格式化的值,一般是後臺傳送到前臺的Date物件  後面的pattern對應的是要顯示的格式,可以自定義.

<fmt:formatNumber value="${ entry.pretaxprize/100 }" pattern="##.##" minFractionDigits="2" />元

這裡的Value值是任何數值型別,pattern為要顯示的格式,此處為顯示小數點後兩位. minFractionDigits="2" 代表要精確的位數.   記住,這裡的值都是通過四捨五入得到的,並非完全精確!


<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
函式 描述
fn:contains(string, substring) 如果引數string中包含引數substring,返回true
fn:containsIgnoreCase(string, substring) 如果引數string中包含引數substring(忽略大小寫),返回true
fn:endsWith(string, suffix) 如果引數 string 以引數suffix結尾,返回true
fn:escapeXml(string) 將有特殊意義的XML (和HTML)轉換為對應的XML character entity code,並返回
fn:indexOf(string, substring) 返回引數substring在引數string中第一次出現的位置
fn:join(array, separator) 將一個給定的陣列array用給定的間隔符separator串在一起,組成一個新的字串並返回。
fn:length(item) 返回引數item中包含元素的數量。引數Item型別是陣列、collection或者String。如果是String型別,返回值是 String中的字元數。
fn:replace(string, before, after) 返回一個String物件。用引數after字串替換引數string中所有出現引數before字串的地方,並返回替換後的結果
fn:split(string, separator) 返回一個數組,以引數separator 為分割符分割引數string,分割後的每一部分就是陣列的一個元素
fn:startsWith(string, prefix) 如果引數string以引數prefix開頭,返回true
fn:substring(string, begin, end) 返回引數string部分字串, 從引數begin開始到引數end位置,包括end位置的字元${fn:substring("ABC","1","2")}擷取結果為“ B ”。
fn:substringAfter(string, substring) 返回引數substring在引數string中後面的那一部分字串
fn:substringBefore(string, substring) 返回引數substring在引數string中前面的那一部分字串,${fn:substringBefore("ABCD","BC")}擷取的結果為“ A ”。
fn:toLowerCase(string) 將引數string所有的字元變為小寫,並將其返回
fn:toUpperCase(string) 將引數string所有的字元變為大寫,並將其返回
fn:trim(string) 去除引數string 首尾的空格,並將其返回


EL表示式拾遺:
pageScope、requestScope、sessionScope 和applicationScope對應JSP的pageContext、request、session和application

request.getParameter(String name)
request.getParameterValues(String name)
application.getInitParameter("userid")
分別等價於:
${param.name}
${paramValues.name}
${initParam.userid}

${pageContext.request.queryString}         取得請求的引數字串
${pageContext.request.requestURL}         取得請求的URL,但不包括請求之引數字串
${pageContext.request.contextPath}         服務的web application 的名稱
${pageContext.request.method}           取得HTTP 的方法(GET、POST)
${pageContext.request.protocol}         取得使用的協議(HTTP/1.1、HTTP/1.0)
${pageContext.request.remoteUser}         取得使用者名稱稱
${pageContext.request.remoteAddr }         取得使用者的IP 地址
${pageContext.session.new}             判斷session 是否為新的
${pageContext.session.id}               取得session 的ID
${pageContext.servletContext.serverInfo}   取得主機端的服務資訊
${header["User-Agent"]}  要取得使用者瀏覽器的版本

運算子empty,?:
例:${empty param.name}、${A?B:C}、${A*(B+C)}