JSP式

JSP式とは

次に、効率的にJSPを記述する方法について説明します。まずは、JSP式について説明します。JSP式とはJavaの変数やメソッドの戻り値をXHTMLとして表示するためのもので、out.print()を省いたりできるといったものです。JSP式の記述の仕方は以下の通りです。

JSP式の書式
<%= 式 %>

JSPの具体的な使用例は以下のようになります。(表2-1.)

表2-1.JSP式
表現記述例
<%= 変数 %><%= i %>
<%= 演算 %><%= i + 1 %>
<%= メソッド呼び出し %><%= getMethod() %>

メソッドの呼び出しに関しては、JSP式には、解や戻り値があるものしか入れる事ができないので戻り値があるメソッドしか呼び出せません。また、式の中で変数の宣言などもできません。

JSP式のサンプル

では、具体的にJSP式を使ったサンプルを見てみましょう。以下のプログラムを実行してみてください。

sample01.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Sample01</title>
</head>
<body>
<% String[] name = {"Spring", "Summer", "Autumn", "Winter"};	%>
<% for(int i = 0; i < name.length; i++){%>
<p align="center"><%= name[i] %></p>
<% }%>
</body>
</html>

URLは、http://localhost:8080/jsp/day2/sample01.jspとなります。実行結果は、以下のようになります。(図2-1.)

図2-1.sample01.jspの実行結果
sample01.jspの実行結果

このサンプルでは、12行目にJSP式が用いられています。これは、out.print(name[i])としているのと同じことになります。そのため、JSP式に表現した値がHTMLとして出力されるわけです。

配列との組み合わせ

このJSP式と、配列を用いれば、テーブルの作成や、プルダウンなどを配列を用いて簡単に表現することができます。以下のサンプルを入力してみてください。

sample02.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Sample02</title>
</head>
<body>
<!-- テーブルのサンプル -->
<b>テーブルのサンプル</b><br/>
<table border="1">
<tr>
	<th width="50">No.</th><th width="100">名前</th>
</tr>
<%String[] name = {"山田太朗","太田京子","佐藤隆俊","鈴木喜一"}; %>
<%for(int i = 0; i < name.length ; i++){ %>
<tr>
	<th><%=i %></th><td><%= name[i] %></td>
</tr>
<%} %>
</table>
<!-- プルダウンのサンプル -->
<b>プルダウンのサンプル</b><br/>
<%String[] subjects = {"国語","数学","理科","社会","英語"}; %>
<select>
<%for(int i = 0; i < subjects.length ; i++){ %>
	<option value="<%= i %>"><%= subjects [i] %></option>
<%} %>
</select>
</body>
</html>

URLは、http://localhost:8080/jsp/day2/sample02.jspとなります。実行結果は、以下のようになります。(図2-2.)

図2-2.sample02.jspの実行結果
sample03.jspの実行結果

このように、データベースの検索結果や、何らかの選択処理なども、JSP式を用いれば簡単に記述することができるのです。

インクルード

includeディレクティブ

今までは、一つのJSPファイルの中に全てを記述するという方法について説明してきました。しかし、異なるJSPファイルでも、似たような表現がたくさんあることがあります。その時に同じ処理を何度も記述するのは大変です。

そんな時に役立つのが、ここで紹介する。includeディレクティブです。includeディレクティブは、テキストファイルやJSPファイルなど外部ファイルをインクルード(含める)する時に使用します。これを用いれば、何度も同じような処理を記述する必要がなくなります。

サンプル

では、実際にincludeディレクティブのサンプルを見てみましょう。以下の2つのサンプルを入力し、sample03.jspの方を実行してみてください。

include.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<% out.print("<p>ここからは、Includeの処理です。</p>"); %>
<% for(int i = 0; i < 3; i++){%>
	<p><%= (i + "回目") %></p>
<% }%>

sample03.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Sample03</title>
</head>
<body>
<%= "Include処理" %>
<%@	include file="include.jsp" %>
</body>
</html>

URLは、http://localhost:8080/jsp/day2/sample03.jspとなります。実行結果は、以下のようになります。(図2-3.)

図2-3.sample03.jspの実行結果
sample03.jspの実行結果

<%@ include file="include.jsp" %>で、インクルードするファイルを呼び出しています。(図2-4.)

図2-4.include処理
include処理