JSP式
日本語 | ジャバ給仕頁式 |
英語 | JSP expression |
ふりがな | じぇいえすぴーしき |
フリガナ | ジェイエスピーシキ |
JSP内で、HTMLに出力するための記号、もしくはその記号で挟まれた範囲。
「<%=」と「%>」で挟まれた範囲のリテラルや変数は、HTMLへと出力される。
出力できる型は全ての型である。プリミティブ型はそのまま出力され、クラスの場合はtoString()メソッドを呼び出して出力する。
これは、HTMLへの出力はout変数のprint()メソッドで出力されるからである。
つまり「<%= 変数 %>」は、「out.print( 変数 );」へと置き換えられるということである。
逆に言うと、「out.print( 変数 );」とすれば別にJSP式は必要ない。あくまで「簡易に出力するための方法」である。
「JSP式」という名称は、「JSP Expression」という英語の訳であり、その機能から考えるとあまり正しくない。
名称は気にせず「HTMLに出力する記号」と考えた方がいいだろう。
「<%=」と「%>」で挟まれた範囲のリテラルや変数は、HTMLへと出力される。
出力できる型は全ての型である。プリミティブ型はそのまま出力され、クラスの場合はtoString()メソッドを呼び出して出力する。
これは、HTMLへの出力はout変数のprint()メソッドで出力されるからである。
つまり「<%= 変数 %>」は、「out.print( 変数 );」へと置き換えられるということである。
逆に言うと、「out.print( 変数 );」とすれば別にJSP式は必要ない。あくまで「簡易に出力するための方法」である。
「JSP式」という名称は、「JSP Expression」という英語の訳であり、その機能から考えるとあまり正しくない。
名称は気にせず「HTMLに出力する記号」と考えた方がいいだろう。
参考サイト
- (参考サイトはありません)
<%-- webapps/sample-servlet/sample.jsp --%>
<%-- http://localhost:8080/sample-servlet/sample.jsp でアクセスできます。 --%>
<%@ page contentType="text/html; charset=Windows-31J" pageEncoding="Windows-31J" %>
<%--
pageEncodingには、このファイルを保存した時の文字コードを指定してください。
Windowsであれば"Windows-31J"を指定すればいいでしょう。
--%>
<html>
<head>
<title>JSPのサンプル</title>
</head>
<body>
<%-- JSP式で出力します。 --%>
<%= "テスト。" %>
<%= "<br>" %>
<%-- 全てのプリミティブ型を出力できます。 --%>
<%= 100 %>
<%= "<br>" %>
<%-- クラスはtoString()メソッドが呼ばれます。 --%>
<%= ( new Object() ) %>
<%= "<br>" %>
<%
// スクリプトレットで宣言した変数を使うこともできます。
int i = 200;
%>
<%= i %>
<%= "<br>" %>
<%
// ただし、スクリプトレット内で使うことはできません。
// <%= "test" %>
// (注:↑試す時にはコメントを取り除き<と>を半角にしてください。
// コンパイルエラー:
// org.apache.jasper.JasperException: JSPのクラスをコンパイルできません
//
// JSPファイル: /sample.jsp の中の行: 36でエラーが発生しました
//
// 生成されたサーブレットのエラーです:
// [javac] Compiling 1 source file
//
// D:\Java\Tomcat 4.1\work\Standalone\localhost\sample-servlet\sample_jsp.java:77: 式の開始が不正です。
// <%= "test"
// ^
%>
<%-- 出力結果 --%>
<%--
テスト。
100
java.lang.Object@18f7701
200
--%>
</body>
</html>
<%-- http://localhost:8080/sample-servlet/sample.jsp でアクセスできます。 --%>
<%@ page contentType="text/html; charset=Windows-31J" pageEncoding="Windows-31J" %>
<%--
pageEncodingには、このファイルを保存した時の文字コードを指定してください。
Windowsであれば"Windows-31J"を指定すればいいでしょう。
--%>
<html>
<head>
<title>JSPのサンプル</title>
</head>
<body>
<%-- JSP式で出力します。 --%>
<%= "テスト。" %>
<%= "<br>" %>
<%-- 全てのプリミティブ型を出力できます。 --%>
<%= 100 %>
<%= "<br>" %>
<%-- クラスはtoString()メソッドが呼ばれます。 --%>
<%= ( new Object() ) %>
<%= "<br>" %>
<%
// スクリプトレットで宣言した変数を使うこともできます。
int i = 200;
%>
<%= i %>
<%= "<br>" %>
<%
// ただし、スクリプトレット内で使うことはできません。
// <%= "test" %>
// (注:↑試す時にはコメントを取り除き<と>を半角にしてください。
// コンパイルエラー:
// org.apache.jasper.JasperException: JSPのクラスをコンパイルできません
//
// JSPファイル: /sample.jsp の中の行: 36でエラーが発生しました
//
// 生成されたサーブレットのエラーです:
// [javac] Compiling 1 source file
//
// D:\Java\Tomcat 4.1\work\Standalone\localhost\sample-servlet\sample_jsp.java:77: 式の開始が不正です。
// <%= "test"
// ^
%>
<%-- 出力結果 --%>
<%--
テスト。
100
java.lang.Object@18f7701
200
--%>
</body>
</html>
<%-- webapps/sample-servlet/sample.jsp --%> <%-- http://localhost:8080/sample-servlet/sample.jsp でアクセスできます。 --%> <%@ page contentType="text/html; charset=Windows-31J" pageEncoding="Windows-31J" %> <%-- pageEncodingには、このファイルを保存した時の文字コードを指定してください。 Windowsであれば"Windows-31J"を指定すればいいでしょう。 --%> <html> <head> <title>JSPのサンプル</title> </head> <body> <%-- JSP式で出力します。 --%> <%= "テスト。" %> <%= "<br>" %> <%-- 全てのプリミティブ型を出力できます。 --%> <%= 100 %> <%= "<br>" %> <%-- クラスはtoString()メソッドが呼ばれます。 --%> <%= ( new Object() ) %> <%= "<br>" %> <% // スクリプトレットで宣言した変数を使うこともできます。 int i = 200; %> <%= i %> <%= "<br>" %> <% // ただし、スクリプトレット内で使うことはできません。 // <%= "test" %> // (注:↑試す時にはコメントを取り除き<と>を半角にしてください。 // コンパイルエラー: // org.apache.jasper.JasperException: JSPのクラスをコンパイルできません // // JSPファイル: /sample.jsp の中の行: 36でエラーが発生しました // // 生成されたサーブレットのエラーです: // [javac] Compiling 1 source file // // D:\Java\Tomcat 4.1\work\Standalone\localhost\sample-servlet\sample_jsp.java:77: 式の開始が不正です。 // <%= "test" // ^ %> <%-- 出力結果 --%> <%-- テスト。 100 java.lang.Object@18f7701 200 --%> </body> </html>