Scriptlet(スクリプトレット)とは?
スクリプトレットとは、Webページを動的に生成するために使用されるコードの断片です。主に、サーバーサイドスクリプト言語(例:Java、PHP、Ruby)のテンプレートファイル内で使用されます。
スクリプトレット内では、通常のプログラミングコードを使用することができます。例えば、変数を宣言したり、ループや条件分岐を行ったりすることができます。
以下は、Javaのスクリプトレットの例です。
<%
int count = 0;
for (int i = 0; i < 10; i++) {
count += i;
}
%>
GoogleAppsScriptでスクリプトレットを使用する
GoogleAppsScriptでもスクリプトレットが使用できます。スクリプトレットを使用することで、JavaScriptのコードをHTML文書内に直接記述することができます。
スクリプトレットは、以下のようにで囲まれた範囲内にJavaScriptのコードを記述します。
<? var name = "太郎"; ?>
上記の例では、変数nameに”太郎”を代入しています。スクリプトレット内では、通常のJavaScriptのコードを使用することができます。また、スクリプトレット内で定義された変数は、スクリプトの他の部分からも参照することができます。
スクリプトレットGASでの使用例
function doGet() {
var template = HtmlService.createTemplateFromFile('index');
template.name = "太郎";
return template.evaluate();
}
上記の例では、doGet関数内でHtmlService.createTemplateFromFileメソッドを使用して、HTMLファイルを読み込んでいます。このHTMLファイル内にスクリプトレットを使用することができます。また、template変数にnameプロパティを追加して、”太郎”を代入しています。
次に、return文でtemplate.evaluateメソッドを呼び出して、評価結果を返しています。この評価結果が、クライアントに送信されるHTMLページになります。
HTMLファイル内では、以下のようにスクリプトレットを使用することができます。
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<title><?= name ?>さんのページ</title>
</head>
<body>
<h1><?= name ?>さんのページ</h1>
<p>こんにちは、<?= name ?>さん!</p>
</body>
</html>
まとめ
上記の例では、<?=と?>で囲まれた範囲内に、doGet関数内で定義したnameプロパティの値を表示するためのコードを記述しています。
このように、Google Apps Scriptでもスクリプトレットを使用することができ、動的なWebページを生成することができます。