<?
……処理を記述……
?>
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; }
<< 前へ | 次へ >> |