EL式とJSTLラベル研究ノート

EL式

EL式のフルネームは次のとおりです。式言語
表現言語です。
EL式の機能は何ですか。EL式は主にjspページの式スクリプトを置き換えて、jspページにデータを出力します。
EL式は、データを出力するときにjsp式スクリプトよりもはるかに簡潔であるためです。

EL式の形式は次のとおりです。$ {expression}
EL式がnull値を出力する場合、出力は空の文字列になります。jsp式スクリプトがnull値を出力する場合、出力はnull文字列になります。

<body>
   <%
        request.setAttribute("key1","value1");
   %>
   表达式脚本输出key的值是:<%=request.getAttribute("key")==null?"":request.getAttribute("key1")%>
   <br/>
   EL表达式输出Key的值是:${key}
</body>

ページの結果:
ここに画像の説明を挿入

ドメインデータのEL式検索順序

EL式は、主にjspページにデータを出力するためのものです。
主にドメインオブジェクト(アプリケーション、セッション、リクエスト、ページコンテンツ)のデータを出力します。
4つのフィールドが同じキーデータを持っている場合、EL式は4つのフィールドの順に小さいものから大きいものへと検索し、見つかったときに出力します。

<body>
<%-- 往四个对象域中都保存了相同的key的数据--%>
<% application.setAttribute("key", "application");%>
<% session.setAttribute("key", "session");%>
<% pageContext.setAttribute("key", "pageContext");%>
<% request.setAttribute("key", "request");%>
${key}
</body>

ページのスクリーンショット:

ここに画像の説明を挿入

EL式は、Beanの共通属性と配列属性を出力します。リストセット

結合された属性、マップコレクション属性
要件-Personクラスの通常の属性と配列属性を出力します。コレクション属性とマップコレクション属性を一覧表示します。
個人クラス:

 public class Person {
    
    

    private String name;
    private String[] phones;
    private List<String> cities;
    private Map<String, Object> map;

    @Override
    public String toString() {
    
    
        return "Person{" +
                "name='" + name + '\'' +
                ", phones=" + Arrays.toString(phones) +
                ", cities=" + cities +
                ", map=" + map +
                '}';
    }

    public void setPhones(String[] phones) {
    
    
        this.phones = phones;
    }

    public void setCities(List<String> cities) {
    
    
        this.cities = cities;
    }

    public void setMap(Map<String, Object> map) {
    
    
        this.map = map;
    }

    public void setName(String name) {
    
    
        this.name = name;
    }

    public String getName() {
    
    
        return name;
    }

    public String[] getPhones() {
    
    
        return phones;
    }

    public List<String> getCities() {
    
    
        return cities;
    }

    public Map<String, Object> getMap() {
    
    
        return map;
    }
}

jspコード

<body>
<%Person person=new Person();
    person.setName("joy");
    person.setPhones(new String[]{"18302000211","123212312341"});
    List<String> cities = new ArrayList<>();
    cities.add("北京");
    cities.add("上海");
    cities.add("南京");
    person.setCities(cities);
    Map<String,Object> maps=new HashMap<>();
    maps.put("key1","value1");
    maps.put("key2","value2");
    maps.put("key3","value3");
    person.setMap(maps);
    pageContext.setAttribute("p",person);

%>
输出Person: ${ p}<br/>
输出Person的name属性:${p.name}<br/>
输出Person的phone数值属性值:${ p.phones[0]}<br/>
输出Person的cities集合中的元素值:${p.cities.get(0)}<br/>
输出Person的map集合中的元素值:${p.map.get("key1")}<br/>
输出Person的map集合中的元素值:${p.map.key2}<br/>

</body>
</html> 

演算結果:
ここに画像の説明を挿入

EL式-操作

構文:$ {演算式}、EL式は次の演算子をサポートします。

関係演算
関係演算子 説明 結果
==またはeq 等しい $ {5 == 5} true
!=またはne 等しくない $ {5!= 5} false
<またはIt 未満 $ {3 <5} true
>またはgt 以上 $ {2> 10} false
<=またはle 以下 $ {5 <= 12} true
> =またはge 以上以上 $ {3> = 5} false
論理演算

算術演算

ここに画像の説明を挿入

空の操作空の操作は、データが空であるかどうかを判断できます。データが空の場合はtrueを出力し、空でない場合はfalseを出力します。
次の状況は空です
。1。値がnull値の場合は空です
。2。値が空の文字列の場合は空です。3
。長さがゼロの場合は値はオブジェクト型配列です
。4。リストコレクション、要素数ゼロ
5.マップコレクション、要素数ゼロ
ここに画像の説明を挿入

三項演算

式1?式2:式3
式1の値がtrueの場合、式2の値を返します。式1の値がfalseの場合、式3の値を返します。
ここに画像の説明を挿入

「。」ドット演算と[]角かっこ演算子

。ポイント操作では、Beanオブジェクトの属性の値を出力できます。
[]ブラケット操作は、順序集合内の要素の値を出力できます。
また、[]ブラケット操作では、マップセットのキーに特殊文字を含むキーの値を出力することもできます。
ここに画像の説明を挿入

EL式の11の隠されたオブジェクト

EL式の11個の暗黙オブジェクトは、EL式でそれ自体で定義され、直接使用できます。

変数 の種類 効果
pageContext PageContextImpl jspで9つの組み込みオブジェクトを取得できます
pageScope Map <String、Object> pageContextドメインのデータを取得できます
requestScope Map <String、Object> リクエストフィールドのデータを取得できます
sessionScope Map <String、Object> セッションフィールドのデータを取得できます
applicationScope Map <String、Object> ServletContextドメインのデータを取得できます
パラメータ Map <String、String> リクエストパラメータの値を取得できます
paramValues Map <String、String []> また、リクエストパラメータの値を取得して、複数の値を取得するときに使用することもできます。
ヘッダ Map <String、String> リクエストヘッダーの情報を取得できます
headerValues Map <String、String []> リクエストヘッダーの情報を取得でき、複数の値を取得できます
クッキー Map <String、Cookie> 現在のリクエストのCookie情報を取得できます
initParam Map <String、String> web.xmlで設定されたコンテキストパラメータを取得できます
ELは4つの特定のドメインで属性を取得します

pageScope ———— "pageContext domain
requestScope ————" Request domain
sessionScope ———— "Session domain
applicationScope ————" ServletContext domain
Codeスクリーンショット:
ここに画像の説明を挿入
実行スクリーンショット:
ここに画像の説明を挿入

pageContextオブジェクトの使用

1. Webページで使用されるプロトコルを
取得します。2。サーバーIPを取得します。3。
サーバーポートを取得します
。4。プロジェクトパスを
取得します。5。リクエストメソッドを
取得します。6。クライアントIPアドレスを取得します
。セッションのID番号:
ここに画像の説明を挿入
## ### EL式の他の暗黙的なオブジェクトの使用
paramMap

<String、String>
リクエストパラメータの値を取得できます
paramValues
Map <String、String []>
値も取得できます複数の値を取得する場合は、リクエストパラメータのを使用します。
ここに画像の説明を挿入
ここに画像の説明を挿入

paramValues
Map <String、String []>
複数の値を取得するときに使用されるリクエストパラメータの値を取得することもできます。
ここに画像の説明を挿入
ここに画像の説明を挿入
ヘッダー
Map <String、String>
リクエストヘッダーの情報を取得できます
headerValues
Map <String、String []>
リクエストヘッダーの情報を取得でき、複数の値を取得できます
リクエストアドレス:
http:// localhost:8080 / _EL_JSTL / other_el_obj.jsp?name = joy&password = 123456&hobby = java&hobby = python
ここに画像の説明を挿入

ここに画像の説明を挿入
initParam
Map <String、String> web.xmlで
構成されたコンテキストパラメーター
web.xmlの構成を取得できます

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <context-param>
        <param-name>username</param-name>
        <param-value>root</param-value>
    </context-param>
    <context-param>
        <param-name>password</param-name>
        <param-value>123456</param-value>
    </context-param>
</web-app>

ここに画像の説明を挿入

JSTLタグライブラリー(2番目に重要なポイント****)

JSTLタグライブラリのフルネームは、JSP標準タグライブラリを指し
ます。これは、絶えず改善されているオープンソースのJSP
ラベルライブラリです
EL式は主にjspの式スクリプトを置き換えるためのものであり、タグライブラリはコードスクリプトを置き換えるためのものです。これにより、jspページ全体が
より良く簡潔になり
ここに画像の説明を挿入
ます。jspタグライブラリのtaglib命令を使用して、タグライブラリ
COREタグライブラリを導入します
<%@ taglib prefix =“ c” uri =“ http://java.sun.com/ jsp / jstl / core "%>
XMLタグライブラリ
<%@ taglib prefix =" x "uri =" http://java.sun.com/jsp/jstl/xml "%>
FMTタグライブラリ
<%@ taglib prefix = "fmt" uri = "http://java.sun.com/jsp/jstl/fmt"%>
SQLタグライブラリ
<%@ taglib prefix = "sql" uri = "http://java.sun.com/jsp / jstl / sql”%>
FUNCTIONSタグライブラリ
<%@ taglib prefix =“ fn” uri =“ http://java.sun.com/jsp/jstl/functions”%>

JSTLタグライブラリを使用する手順

1.まず、jstlタグライブラリのjarパッケージをインポートします。
ここに画像の説明を挿入

2. 2番目のステップでは、taglib命令を使用してタグライブラリを導入します。
ここに画像の説明を挿入

コアコアライブラリの使用

。<c:set />(めったに使用されません)
役割:setタグはデータをフィールドに保存できます
ここに画像の説明を挿入

ここに画像の説明を挿入
<c:if />
ifタグはif判定を行うために使用され
ここに画像の説明を挿入
ここに画像の説明を挿入
ます<c:choose> <c:when> <c:otherwise>タグ
機能:多方向判定。switch…case…defaultに非常に近いです。
選択ラベルの選択を開始して
、ラベルが各ケースを示す時期を決定します。test
属性は現在のケースの値を示します。
それ以外の場合、ラベルは残りのケースを示します。
<c:choose> <c:when> <c:otherwise>タグを使用する際の注意点:
1。HTMLアノテーションはタグで使用できませんが、jspアノテーションを使用する必要があります。2。whenタグ
の親タグはchooseタグである必要があります。
ここに画像の説明を挿入
ここに画像の説明を挿入
<c:forEach />
機能:出力の使用をトラバースします。
ここに画像の説明を挿入
ここに画像の説明を挿入
2.オブジェクト配列をトラバースします
ここに画像の説明を挿入

ここに画像の説明を挿入

  1. マップコレクションをトラバースします

ここに画像の説明を挿入
ここに画像の説明を挿入

リストコレクションをトラバースする
ここに画像の説明を挿入
ここに画像の説明を挿入

forEachのプロパティ

varStatusクラスのメソッド:
ここに画像の説明を挿入
サンプルコード:
ここに画像の説明を挿入
出力結果:
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/qq_44788518/article/details/108508943