jstlの共通ラベル(使用時再学習)

4041 ワード

例えば、私たちは日付の問題を処理するために、伝統的にクラスを書いて、データを変換して、JSTL面自体に日付フォーマットを処理するラベルがあります.
これによりarr.createdDateの時間フォーマットが変更され、使用時にELでこのラベルを調整すれば${date}となります.


1つのレコードを複数行に分割し、シーケンス番号の自己増加の問題を解決します.
                                       ${row}          ${backStoreInfo.SERVDOCID}          ${backStoreInfo.APPMATERIELID}障害部品障害部品退庫<${backStoreInfo.FAULTTSTORECOUNT}<${td>>${backStoreInfo.SERVDDOCID}${backStoreInfo.COMFIRMMATERILID}DOA件DOA件退庫${backStoreInfo.DOASTORECOUNT}${row}${backStoreInfo.SERVDOCOCID}${backStoreInfo.COMFIRMMATERID}<良品良品退庫${backStoreInfo.GOODSTORECOUNT}                  
 
分割文字列JSPページ
変換元:http://www.cnblogs.com/huhu/articles/116855.html
カスタムタグにJSTL関数ライブラリを使用する
JSTL 1.1は、多くの有用な文字列操作を実現するための関数ライブラリを提供する.次のコードは、JSTLのfn:split()関数を使用して、文字列(a 1/a 2//b//c 1/c 2/c 3)を3つのタグ(a 1/a 2、b、およびc 1/c 2/c 3)に分割しようとします.
 
<!-- SplitTest.jsp -->

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

<p>fn:split -
<c:set var="str" value="a1/a2//b//c1/c2/c3"/>
<c:set var="delim" value="//"/>
<c:set var="array" value="${fn:split(str, delim)}"/>
<c:forEach var="token" items="${array}">
[<c:out value="${token}"/>]
</c:forEach>

 
上記のコードは、fn:split()がjavaに基づいているため、所望の結果を生成する.util.StringTokenizerは、delimパラメータを区切り文字のセットとして処理します.以下はSplitTest.jsp生成出力:
 
fn:split - [a1] [a2] [b] [c1] [c2] [c3] 

 
JSTLは、fn:contains()、fn:substringBefore()、およびfn:substringAfter()、などの他の文字列関数を提供し、これらの関数を循環的に使用することによってa 1/a 2//b//c 1/c 2/c 3をa 1/a 2、b、およびc 1/c 2/c 3に分割することができる.このループはタグによって制御されます.
 
 
<!-- WhileTest.jsp -->

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="u" uri="/WEB-INF/util.tld" %>

<p>u:while -
<c:set var="str" value="a1/a2//b//c1/c2/c3"/>
<c:set var="delim" value="//"/>
<u:while test="/${fn:contains(str, delim)}">
[<c:out value="${fn:substringBefore(str, delim)}"/>]
<c:set var="str" value="${fn:substringAfter(str, delim)}"/>
</u:while>
[<c:out value="${str}"/>]

 
$文字はtest条件で反スラッシュで変換されていることに注意してください.したがって、JSPコンテナはtest属性の値をテキスト処理として扱い、JSP式の値を求めない.タグは、この反復ごとに${fn:contains(str,delim)}式を解くWhileTagクラスによって処理されます.{fn:substringBefore(str,delim)}式は文字列の最初のタグを返し、${fn:substringAfter(str,delim)}は残りのタグを返します.WhileTest.jspページ生成に必要な出力:
 
u:while - [a1/a2] [b] [c1/c2/c3]