|
|
SledgeによるWebアプリケーションフレームワーク入門 |
第6回:さらなる活用のために
著者:ライブドア 池邉 智洋 2005/7/28
|
|
|
前のページ 1 2 3 4 次のページ
|
|
MVCの構成
|
StrutsはMVCが以下のように構成されています。
- Model - Actionクラス
- Controller - ActionServlet、struts-config.xmlというURIマッピング用XML
- View - JSP、taglib
一方SledgeではPagesクラスがControllerであり、Modelの役割も行なうような構造になっています。場合によってはロジックとページ制御が混在してしまい、理想的ではない構造になってしまいますが、ちょっとしたサイトの制作であれば、クラス数の増加をおさえられる効能もあります。
|
国際化
|
Strutsは最初から国際化が考慮されているため、国際化されたアプリケーションの開発が比較的容易です。
Sledgeでは完全に国際化されたアプリケーションの開発はあまり得意ではありません。デフォルトのcharsetがeuc-jpになっているのは日本独自の仕様であり、あまり美しくないです。
|
XMLの利用
|
Strutsは設定ファイルがXML化されていますが、Sledgeはデフォルトだと設定ファイルがPerlスクリプトで書かれており単純です。
|
Sledge TIPS
|
公式なドキュメントではあまり触れられていませんが、Sledgeをより活用して効率よくコードを書くために覚えていると便利なTIPS的なコードを紹介します。
|
HTML以外のコンテンツの出力
|
Sledgeは基本的にテンプレートエンジンを利用する事が前提となっているため、画像等をアプリケーションから出力しようとする場合、少し工夫が必要になってきます。Pagesクラスのfinishedアトリビュートに真の値を渡さない限り、テンプレートエンジンの動作を停止する事ができないので、以下のようにします。
|
package ThinkIT::Pages::Hook;
use strict;
use Sledge::Pages::Compat;
sub dispatch_image {
my $self = shift;
my $image = $self->load_image; # 画像データのロード
# 自前で Request オブジェクトを操作し、出力を行なう。
$self->r->content_type('image/jpeg');
$self->r->header_out('Content-Length' => length($image));
$self->r->send_http_header;
$self->r->print($image);
$self->finished(1); # この後の動作をキャンセルする。
}
|
|
前のページ 1 2 3 4 次のページ
|
|
|
|
著者プロフィール
株式会社ライブドア 池邉 智洋
ネットサービス事業本部 システムグループ マネージャー。2001年10月よりライブドア(当時オン・ザ・エッヂ)にて受託開発業務のWebアプリケーション開発に従事。2003年11月よりlivedoorのポータル化にたずさわり、各種サービスの開発を行う。個人的にCPANモジュールやApacheモジュールの公開も行っている。
|
|
|
|