2009/05/22

ASP:: テンプレートファイルの切り替え

相変わらずASPを使ってWebサイトの開発を行っていますが、同じコードを使いまわすケースが多いためインクルードファイルを多様しています。
インクルードファイルは、サーバサイドスクリプトとデザインのテンプレートファイル。

先日ふと思ったのが、
 <%   ホニャララ  %>
 
みたいなASPファイルを作成するとインクルードファイルの切り替えができないことに気が付きました。

ASPファイルの管理が煩雑化するため、
 ①共通で使えるASPを作成
 ②FileSystemObjectを用いてテンプレートファイルを切り替える
 ③ASPで処理したデータをテンプレートに埋め込む場合は、独自ルールのタグを記述する
手法に切り替えました。

詳しい内容は、
 ・FSO(FileSystemObject)をコール、インスタンスを作成
 ・OpenTextFileでファイルを開く。
 ・ReadLineメソッド一行ずつ読み込む。
 ・独自タグ(以下の場合{ xxxx })があったら、ASP側で処理した内容を埋め込む。
といった感じ。

または、
 ・FSO(FileSystemObject)をコール、インスタンスを作成
 ・OpenTextFileでファイルを開く。
 ・ReadAllメソッドでテンプレート内容を一気に読み込む
 ・テンプレート内の独自タグをreplace関数で置換する
かな。

一行ずつリードする手法のスクリプトはこんな感じ。
-------------------------------------------------
var _objFSO = Server.CreateObject("Scripting.FileSystemObject");
var _objTS = _objFSO.OpenTextFile("c:\\templete.html");
var _wkHtmlStr = "";
while(!_objTS.AtEndOfStream){
 _wkHtmlStr = _objTS.ReadLine();
 if(_wkHtmlStr.indexOf("{ sLinkList }") > 0){
  Response.Write("ASP側で処理した内容だよ");
 }else{
  Response.Write(_wkHtmlStr);
 }
}
_objTS.Close();
-------------------------------------------------

勉強になったサイトはこちら
スポンサーリンク

スポンサーリンク