<?
……処理を記述……
?>
output.append( 追加する内容 );こんな具合にして、その場所に書き出す内容を引数に指定することで、それがレンダリング時にHTML内に組み込まれるようになります。
{type:'msgdata', msg: メッセージ, num:番号 }投稿したメッセージの順番がわかるように番号をつけておくことにしました。このようにして保管されたオブジェクトを、ページをロードする際に取得して、スクリプトレットを利用して内容を表示していくことにします。var db = ScriptDb.getMyDb();これは、このようにqueryを使ってmsgdataオブジェクトを検索し、その結果をreturnするものです。sortByを使って、通し番号(numプロパティ)の降順に並べ替え、一番新しいものから並ぶようにしておきました。
var result = db.query({type:'msgdata'}).sortBy('num', db.DESCENDING, db.NUMERIC);
return result;
var res = getMsgs();getMsgsを呼び出して結果を受け取り、while(res.hasNext()) でまだデータが残っている間、繰り返しを行います。その内容は、res.next().msg で取得したメッセージを output.append で<li>タグにまとめて追加する、というものです。両者の働きをよく見て、「サーバーから受け取った情報をスクリプトレットで出力する」という基本的な流れを頭に入れておきましょう。
while(res.hasNext()){
output.append('<li>' + res.next().msg + '</li>');
}
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
※index.html
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<title>Sample jsp</title>
<style>
h1 {font-size:16pt; background:#AAFFAA;padding:5px;}
p {margin:10px;}
</style>
</head>
<body>
<h1>Sample jsp page</h1>
<ul id="list">
<?
var res = getMsgs();
while(res.hasNext()){
output.append('<li>' + res.next().msg + '</li>');
}
?>
</ul>
</body>
</html>
※スクリプト
function doGet() {
var output = HtmlService.createTemplateFromFile('index');
return output.evaluate();
}
function getMsgs(){
var db = ScriptDb.getMyDb();
var result = db.query({type:'msgdata'}).sortBy('num', db.DESCENDING, db.NUMERIC);
return result;
}
| << 前へ | 次へ >> |