JSTL Core詳細(二)

7769 ワード

ラベルは、JSPにデータを表示するために最も一般的なラベルです.プロパティと説明を表に示します.

value
        ,   EL      (  )

default
 value null      (  )

escapeXml
    true          ,  “<,>,&”(  ,   true)

JSTL 1.0の場合、ページ表示データはで行う必要があります.しかしながら、JSTL 1.1では、JSP 2のため.0仕様ではEL式がデフォルトでサポートされているため、JSPページで直接式を使用できます.次に例を示します.

<c:out value="${sessionScope.anyValue}" default="no value" escapeXml="false"/>

この例では、SessionからanyValueという名前のパラメータを検索してページに表示し、見つからない場合はno valueと表示します.
ラベルは、変数またはJavaBeanの変数属性に値を割り当てる作業に使用します.プロパティと説明を表に示します.

value
    ,   EL      

target
    JavaBean     ,         
  property  (  )

property
JavaBean         (  )

var
       (  )

scope
       ,     ,   page(  

valueのプロパティが存在しない場合、付与されたコンテンツとしてラベルに含まれるエンティティデータが使用されます.次に例を示します.

<c:set value="this is andy" var="oneString"/>
${oneString} <br>

この例では、「oneString」という名前の変数をpageの範囲で「this andy」に割り当てます.
削除に使用するラベルラベルscopeに存在する変数を削除します.プロパティと説明を表に示します.

var
         

scope
       ,     ,       (  )

次に例を示します.

<c:remove var="sampleValue" scope="session"/>
${sessionScope.sampleValue} <br>

この例では、Sessionで「sampleValue」という変数を削除します.次のEL式でこの変数を表示すると、その変数はもう存在しません.
例外取得用のタグタグを使用すると、JSPページで例外をキャプチャできます.これにはvarプロパティが含まれており、例外を記述する変数であり、変更量はオプションです.var属性の定義がなければ、異常のみをキャプチャして何もせず、var属性を定義すれば、varが定義した異常変数を利用して判断して他のページに転送したり、エラーメッセージを提示したりすることができます.例を見てください.

<c:catch var="err"> ${param.sampleSingleValue[9] == 3}</c:catch>
${err}

「${param.sampleSingleValue[9]==3}」式に異常がある場合、var属性「err」から異常な内容を得ることができ、通常「err」がnullであるか否かを判断してエラー情報のヒントを決定する.
判断に使用されるラベルラベルは、簡単な条件文に使用されます.プロパティと説明を表に示します.

test
       

var
      true false    ,            (  )

scope
       ,     ,      page      (  )

次に例を示します.

<c:if test="${paramValues.sampleValue[2] == 12}" var="visits">It is 12</c:if><br>
${visits} <br>

この例では、requestリクエストが送信した入力コントロール配列パラメータのうち、「2」と表記されたコントロール内容が「12」であるかどうかを判断し、12であれば「It is 12」を表示します.判断結果はpage範囲の「visits」変数に保存されます.
複雑な判断に使用されるラベルの3つのラベルは、「if,elseif」のような複雑な条件判断文を実現するために使用されます.
        
ラベルには属性がなく、親ラベルとみなされ、がサブラベルとして使用されます.ラベルは「if」文に等しく、判断する条件を表すtest属性が含まれます.ラベルには属性がなく、「else」文に等価です.
複雑な条件文の例を次に示します.

<c:choose>
         <c:when test="${paramValues.sampleValue[2] == 11}">
                   not 12 not 13,it is 11
         </c:when>
         <c:when test="${paramValues.sampleValue[2] == 12}">
                   not 11 not 13,it is 12
         </c:when>
         <c:when test="${paramValues.sampleValue[2] == 13}">
                   not 11 not 12,it is 13
         </c:when>
         <c:otherwise>
                   not 11 、12、13
         </c:otherwise>
</c:choose>

この例では、requestリクエストが送信した入力コントロール配列パラメータのうち、「2」コントロール内容が「11」または「12」または「13」であるか否かを判断し、判断結果に基づいてそれぞれの文を表示し、そうでない場合は「not 11、12、13」を表示する.
ループ用のラベル

items
       (  )

begin
    (  )

end
    (  )

step
     ,   1(  )

var
         ,   items  ,              (  )

varStatus
         (  )

次に、コレクションループの例を示します.

<%ArrayList arrayList = new ArrayList();
                   arrayList.add("aa");
                   arrayList.add("bb");
                   arrayList.add("cc");
%>
<%request.getSession().setAttribute("arrayList", arrayList);%>
<c:forEach items="${sessionScope.arrayList}" var="arrayListI">
         ${arrayListI}
</c:forEach>

この例では、Sessionに保存されている「arrayList」というArrayListタイプの集合パラメータに格納されているオブジェクトを順次読み出し、itemsプロパティはArrayListタイプの集合パラメータを指し、varプロパティは集合内のオブジェクトを受信するために新しい変数を定義します.最後に直接EL式でページに表示されます.簡単なループの例を次に示します.

<c:forEach var="i" begin="1" end="10" step="1">
      ${i}<br />
</c:forEach>

この例では、「1」から「10」にループし、ループ内の変数「i」をページに表示します.
文字を区切るラベル
    
ラベルは、javaに相当する区切り記号に基づいて指定する文字列を区切ることができる.util.StringTokenizerクラス.その属性と説明を表に示す

items
     EL      

delims
   

begin
    (  )

end
    (  )

step
     ,   1(  )

var
         (  )

varStatus
         (  )

次に例を示します.

<c:forTokens items="aa,bb,cc,dd" begin="0" end="2" step="2" delims="," var="aValue">
         ${aValue}
</c:forTokens>

区切りが必要な文字列は「aa,bb,cc,dd」、区切り記号は「,」です.beginプロパティは、最初の','から区切りを指定し、endプロパティは3番目の','に区切りを指定し、ループする変数名を'aValue'に指定します.ステップ長が"2"であるため、EL式${aValue}では"aa"しか表示できない
ページを含む

url
       URL

context
Web Context         Context     ,   context   ,   “/”  ,     url   “/”  (  )

charEncoding
        (  )

var
            (  )

scope
            (  )

varReader
     java.io.Reader    (  )

次に例を示します.

<c:import url="/MyHtml.html" var="thisPage" />
<c:import url="/MyHtml.html" context=”/sample2” var="thisPage"/>
<c:import url="www.sample.com/MyHtml.html" var="thisPage"/>

この例では、同じContextでインポートする方法と、異なるContextでインポートする方法と、任意のURLをインポートする方法の3つの異なるインポート方法を示します.
URLアドレスを取得するためのラベル

value
   URL  

context
Web Context         Context  URL  ,   context   ,   “/”  ,     url   “/”  (  )

charEncoding
URL    (  )

var
  URL    (  )

scope
       (  )

次に例を示します.

<c:url value="/MyHtml.html" var="urlPage" />
<a href="${urlPage}">link</a>

1つのURLを得た後,用EL式放入平板的href属性,达成链接的目的.使用的是相当于佩吉里达克特用的拉贝尔response的佩吉里达克特.setRedirect Mesold的工作urlとcontextの2つの属性が含まれており、属性の意味はラベルと同じである。接下来是例子. <c:redirect url="/MyHtml.html"/> この例をJSPに示すと、現在のWeb Contextの下にある「MyHtml.html.html」のページにリダイレクトされ、これらのラベルも一般的に使用する.包括传达电脑在内的橄榄球,包括在内的页面或领导的页面上使用了电脑. name 渡されたパラメータ名 value 渡されたパラメータ値(オプション)