JSP学習ノートを再確認する--JSTLラベルライブラリ

9114 ワード

以前jspを書くときはjstlタグライブラリに抵抗がありましたが、javaコードを埋め込む方法はほとんど不利ではないと思いますので、タグライブラリを使う必要はありませんが、今回の復習はよく勉強してみましたが、これはやはり役に立ち、よく使うと手間が省けます.JSTLはel式の拡張で、タグ言語で、使いやすいです.彼はjsp内蔵のラベルではなく、使用前にガイドパッケージが必要であり、指定ラベルライブラリが必要であり、Myeclipseにはjstlのjarパッケージが内蔵されているため、ガイドパッケージという操作は必要ない.
JSTLには4つのラベルライブラリがあり、よく使われるのは1つのcoreだけで、その他はほとんど使われていません.使用前にまずラベルライブラリをインポートします.コードは以下の通りです.
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

一般的なラベルについて説明します.cor eライブラリのラベルが多いため、一般的にcラベルと呼ばれています.
  •   :出力
  •  value:文字列でもel式でも構いません   例えば または
  •  default:valueがnullの場合、defaultの値が出力されます. 例えば${name}が存在しない場合、出力枚3.
  •  EscapeXML:エスケープを表し、デフォルトはtrue

  • 例:
      <c:out value="aaa"/>              aaa
      <c:out value="${aaa"/>            aaa,   ${aaa}  
       <c:out value="${aaa}" default="xxx"/>     ${aaa}   ,    xxx   
       <c:out value="${aaa}" escapeXml="true"/>  ${aaa}       ,     。     javascript  

     
  • :設定(ドメイン作成のプロパティ)
  • var:変数名
  • value:変数値
  • scope:ドメインのデフォルトをpageとして指定してrequset,session,application
  • を選択します.

    例:
    <c:set var="name" value="zhangSan" scope="request"/>
    
    
    <% request.setAttribute("name");   %>

     
    上下の2行のコードの役割は同じで、いずれもrequestドメインにname属性を作成し、値は「zhangSan」である.
  •  :ドメイン変数
  • を削除
  • var:変数名
  • scope:ドメインを指定し、指定しない場合、デフォルトではすべてのドメイン
  • を削除します.
    <c:remove var="a"/>           a    
    <c:remove var="a" scope="page"/>   page    a    
  • :urlを出力するか、urlをドメイン
  • に保存します.
  • value:パスの前にプロジェクト名
  • を自動的に追加するパスを指定します.
  • var:変数名を指定し、この属性を追加すると出力されず、指定した変数名の
  • に出力内容を保存する.
  • scope:varとともに使用し、保存ドメイン
  • を指定する
    <c:url value="/AServlet"/>                          URL:/   /AServlet
    <c:url value="/AServlet" var="url" scope="page"/>      url   page  ,     
    <c:url value="/AServlet">            :  URL:/   /AServlet?username=%xx%xx%xx%xx%xx%xx,      URL  
       <c:param name="username" value="  "/>
    </c:url/>
  • :Javaのif文
  • に対応
  • では、vsという変数を使用してループの状態を取得できます.
  •  count:intタイプ、現在要素を遍歴する個数;
  •   index:intタイプ、現在の要素の下付き;
  •  first:booleanタイプ、最初の要素かどうか;
  •  Last:booleanタイプ、最後の要素かどうか;

  • 上の例では、配列のすべての要素を遍歴しましたが、配列の最初の要素「あら」だけを取り出したい場合は、どうすればいいのでしょうか.
    <c:forEach items="${array }" var="i" varStatus="index">
        <c:if test="${index.first }">
        --->${i }
        </c:if>
    </c:forEach>

    出力結果は次のようになります.
    ----->やれやれ