トップ 新規 編集 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

JSPの基本:EL式

EL式

  • Expression Languageの略。
  • JSPの2.0で導入され、JSP中の式をより簡潔な形式で記述できる。

 EL式の書式

${<式>}

EL式の例:el01.jsp

1
2
3
4
5
6
7
8
9
10
11
12
<%@page pageEncoding="utf-8" %>
<html>
<body>
<%-- 文字列の記述 --%>
${"こんにちは"}<br />
<%-- 計算の記述 --%>
5963x12=${5963*12} <br />
<%-- オブジェクトへのアクセス --%>
<% pageContext.setAttribute("str","格納された文字列です。"); %>
${str}<br />
</body>
</html>

演算子の種類

  • 演算子は括弧内の表現を用いることも可能
カテゴリ 演算子 意味
算術 + 加算
- 減算
* 乗算
/ (div) 除算
% (mod) 剰余
比較 == (eq) 等しい
!= (ne) 等しくない
< (lt) 小さい
> (gt) 大きい
<= (le) 以下
>= (ge) 以上
empty nullまたは空文字ならば真(true)
論理 && (and) 論理積
|| (or) 論理和
! (not) 否定
二項演算子 α?β:γ αが真(true)の場合はβ、αが偽(false)の場合にはγ

 EL式によるオブジェクトの参照

  • getterメソッドによるオブジェクトの変数の参照は、登録されたオブジェクト名.変数名で参照することができる

EL式によるオブジェクトの参照の例:el02.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<%@ page contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%!
public class Book {
    private String author,title;
    public String getAuthor() {
        return author;
    }
    public void setAuthor(String author) {
        this.author = author;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
}
%>
<%
    Book book = new Book();
    book.setAuthor("芥川龍之介");
    book.setTitle("蜘蛛の糸");
    pageContext.setAttribute("book",book);
%>
<html>
<body>
ある本をこのjspのページに登録しました。その<br/>
&nbsp;&nbsp;著者は${book.author}<br />
&nbsp;&nbsp;書名は${book.title}<br />
です。
</body>
</html>

 EL式の暗黙オブジェクト

暗黙オブジェクトの名前 内容
pageContext pageContext
pageScope pageのスコープ
requestScope requestのスコープ
sessionScope sessionのスコープ
applicationScope applicatoinのスコープ
param request.getParameter()
paramValue request.getParameterValues()
header ヘッダのマップ
headerValue 複数の値を持つヘッダのマップ
initParam 初期パラメータのマップ
cookie クッキーのマップ

暗黙オブジェクトの利用例1:el03.jsp

1
2
3
4
5
6
7
8
9
10
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<html>
<body>
    このページを見ているブラウザは${header["user-agent"]}です。
    <br/>
    ブラウザのデフォルトの言語は${header["accept-language"]}です。
    <br/>
    ブラウザは${header["host"]}からこのページの情報を取得しています。
</body>
</html>

暗黙オブジェクトの利用例2:el04.jsp

  • requestのパラメータを取得する例
  • 以下のJSPファイルではparam.inputという表現であるが、param["input"]という形にしても参照することができる
  • 日本語を扱う場合にはrequest.setCharatcterEncodingを設定しないと文字化けするのに注意すること。
1
2
3
4
5
6
7
8
9
10
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<% request.setCharacterEncoding("utf-8"); %>
<html>
<body>
    <form action="${pageContext.request.requestURI}">
        <input type="TEXT" name="input">
    </form>
    ${param.input}
</body>
</html>

 課題

  1. 以下のような動作を行うJSPファイルを作成しなさい(/kadai/07-01elattribute.jsp)。
    1. 変数helloを宣言、"こんにちは"を代入し、pageContextオブジェクトに登録する
    2. 変数worldを宣言、"世界"を代入し、requestオブジェクトに登録する
    3. EL式で上記のhelloとworldを参照し、両方続けて表示する
  2. 暗黙オブジェクトrequest2で作成したファイルのパラメータを受け取るJSPファイルをEL式を用いて書きなさい(/kadai/07-02elGetParam.jsp)

最終更新時間:2008年05月19日 11時58分34秒