JSPの式(<%= %>)タグの使い方!値の出力タイミングと注意点を初心者向けに解説
生徒
「JSPで変数の値をHTMLに表示するには、どうやって書けばいいんですか?」
先生
「その場合は、JSPの式タグと呼ばれる<%= %>を使うと簡単に出力できますよ。」
生徒
「スクリプトレットとの違いがよくわからなくて混乱してます……」
先生
「それでは、JSPの式タグの基本的な使い方と、出力のタイミングや注意点を詳しく説明しましょう。」
1. JSPの式タグ(<%= %>)とは?
JSPの式タグとは、<%= %>の形式でJavaの変数や式をWebページのHTMLに直接出力するための構文です。通常、スクリプトレットではJavaの処理を書きますが、式タグではその処理の結果をそのまま出力できます。
たとえば、<%= "こんにちは" %>と書くと、HTML上に「こんにちは」と表示されます。JSPでの値の表示を行う場合は、まずこの式タグを理解することが大切です。
2. 基本的な式タグの使い方と表示例
実際に、JSPの式タグを使った簡単なコードを見てみましょう。以下は変数の値を画面に表示する基本的な例です。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP式タグの使い方</title>
</head>
<body>
<%
String name = "田中さん";
%>
<p>こんにちは、<%= name %>!</p>
</body>
</html>
この例では、JSP内で変数nameを定義し、それを<%= name %>で出力しています。JSPの式タグを使うと変数の中身を簡単に表示できることがわかります。
3. スクリプトレットとの違いを理解しよう
JSPの式タグとスクリプトレットの違いを理解することは非常に重要です。
- スクリプトレット(<% %>):Javaの処理を実行する(表示はしない)
- 式タグ(<%= %>):Javaの式を評価し、その結果をHTMLに出力
例えば、次のように書いた場合、画面に表示されるのは「合計は15です」となります。
<%
int a = 10;
int b = 5;
%>
<p>合計は<%= a + b %>です。</p>
このように、スクリプトレットで計算して式タグで出力するという組み合わせが基本となります。
4. 出力タイミングとレンダリング順の理解
JSPの式タグの出力タイミングは、HTMLとしてのレスポンスがブラウザに送信される直前です。つまり、JSPファイルがServletに変換される際、式タグの中身はout.print()に置き換えられて出力されます。
例えば、次のように書かれた式タグは、JSPコンパイル時には以下のように変換されます。
out.print(name);
そのため、式タグの内容は必ず何らかの値(または文字列)を返す式でなければならないことに注意しましょう。void型のメソッドなどは使えません。
5. 式タグで注意すべきポイント
JSPの式タグを使う際にはいくつか注意点があります。JSP初心者がつまずきやすいポイントでもあるので、しっかりと確認しておきましょう。
- セミコロンをつけない:式タグでは
;を使ってはいけません。Javaの式のみを書きます。 - nullの可能性に注意:
<%= user.getName() %>のような書き方では、userがnullだとエラーになります。 - 出力形式を整える:数字の桁数を揃えたい場合などは、
DecimalFormatを使うこともあります。 - 安全な出力処理:ユーザーの入力値を出力する場合はXSS対策として
escapeXml処理を使うことも検討しましょう。
6. 式タグを使った簡単な練習課題
JSPの式タグを使って実際に動かしてみることが理解の近道です。以下は簡単な練習例です。
<%
int price = 1980;
double tax = price * 0.1;
%>
<p>商品の価格は<%= price %>円(税込<%= price + (int)tax %>円)です。</p>
この例では、式タグを2回使って、価格と税込価格をそれぞれ出力しています。JSP式タグの出力方法に慣れるには、このような小さな例を繰り返すことが効果的です。
7. 式タグの活用と今後の学習の進め方
JSP式タグは、Webページで動的な表示をするための基本技術です。${}のEL式を使うケースもありますが、まずは式タグの使い方をしっかりと身につけることが、今後のJSP学習やサーブレット連携において重要な土台となります。
式タグに慣れてきたら、次のステップとして
- JSPとServletの連携
- EL式(Expression Language)
- JSTL(標準タグライブラリ)の導入
なども合わせて学習していくと、より安全でメンテナンスしやすいWebアプリケーションが作れるようになります。
まとめ
JSPの式タグ(<%= %>)は、ページに動的な内容を自然に差し込むための重要な仕組みであり、特に初心者が最初に触れる動的表示の基礎として非常に理解しやすい構文です。記事全体を振り返ると、式タグはJavaの式をそのまま表示するために使われ、スクリプトレットと組み合わせることでより柔軟な表示が可能となります。また、JSPページがServletへ変換される際の仕組みや、式タグ内部の内容がout.print()として扱われる点も押さえておくべき重要なポイントでした。動的な値の表示を行う際には、セミコロンを付けないことや、nullの可能性に注意すること、ユーザー入力の表示に対して安全な処理を行うことなど、細かい点も意識する必要があります。
特に、実際に式タグを使ったコード例では、変数を設定し、それを画面に表示するという具体的な流れがわかりやすく示されていました。実際の開発においても、このような表示処理は頻繁に行われ、同時にスクリプトレットと式タグの役割を分けて使用することがスムーズな実装につながります。また、JSPの文法に慣れてくると、EL式やJSTLといったより便利で安全な記述方法にも自然とステップアップできるようになります。JSPの式タグはWebアプリケーションにおける「値をどう表示するか」を考えるための最初の重要な入口であり、確実に理解しておくことで今後の学習が大きく進みやすくなります。
サンプルプログラムで振り返る
以下に記事内容を踏まえた練習用サンプルとして、式タグの動的出力を使った確認用コードを掲載します。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>まとめページの確認</title>
</head>
<body>
<%
String title = "JSP式タグまとめ";
int count = 3;
int total = count * 500;
%>
<h3 class="fw-bold"><%= title %></h3>
<p>選択した項目数:<%= count %> 個</p>
<p>合計金額:<%= total %> 円</p>
</body>
</html>
このように、変数の値を式タグで出力するだけでページの内容が動的に変化し、画面に反映される様子が確認できます。JSPを学習する上では、まずこの動作を体感しながら理解を深めることがとても重要で、最初は小さな例から積み重ねていくことで自然と応用も効くようになります。
生徒
「JSPの式タグって、スクリプトレットと違って表示専用なんだとわかってきました。でも実際の開発ではどんなところでよく使うんですか?」
先生
「一番多いのは、ページに動的な値を自然に差し込みたい場面ですね。名前や日付、計算結果などをそのまま表示したい時は式タグがぴったりですよ。」
生徒
「なるほど……確かに今回のサンプルみたいに、小さな値を差し込むだけでも便利ですね。」
先生
「そうなんです。しかも、式タグはJSPの処理がServletに変換されるとout.print()に置き換えられるので、実際には単純でわかりやすい仕組みなんですよ。」
生徒
「今は少し複雑に感じても、仕組みに慣れれば理解しやすそうですね。次はEL式とかJSTLにも挑戦してみたいです!」
先生
「いいですね。今回の内容がしっかり理解できたら、その次のステップにもスムーズに進めるはずですよ。」