Myページ
ホーム
コミュニティの人々
ソフトウェア
技術紹介
適用分野
Tyzohとは
ご意見お問い合わせ

V.S.A. III

Catalyst を使ってみる #005

こんにちは,五十嵐です.前回は fillform がない,というところで終わってしまいました

fillform は Catalyst::Plugin::FillInForm モジュールに含まれていることがわかりました.このモジュールはインストールされているのですが,正しく呼ばれていないということです.

そこで,モジュールを明示的に use して,さらに fillform を FillInForm から明示的に呼んでみました.

$ svn diff
Index: testbookmark.pm
===================================================================
--- CatalystTest/trunk/MyApp/lib/MyApp/Controller/CatalystTest/\
testbookmark.pm (リビジョン 10)
+++ CatalystTest/trunk/MyApp/lib/MyApp/Controller/CatalystTest/\
testbookmark.pm (作業コピー)

@@ -23,6 +23,8 @@
 
 use Catalyst qw/-Debug ConfigLoader Static::Simple FillInForm 
Charsets::Japanese Prototype/;
 
+use Catalyst::Plugin::FillInForm;
+
 #sub index : Private {
 #    my ( $self, $c ) = @_;
 #
@@ -103,9 +105,10 @@
    my ( $self, $c ) = @_;
 
    # body が指定されていない場合にTT を使う
-   $c->forward( $c->view('CatalystTest::testbookmark::View::TT') ) 
unless $c->response->body;
+   #$c->forward( $c->view('CatalystTest::testbookmark::View::TT') ) 
unless $c->response->body;
+   $c->forward( $c->view('CatalystTest::testbookmark::View::TT') );
    # FillInForm を使ってフォームを埋める
-   $c->fillform($c->stash->{fdat});
+   $c->Catalyst::Plugin::FillInForm::fillform($c->stash->{fdat});
 }
 
 1;
$ 

これで,エラーは出なくなりました.しかし,http://localhost:3000/catalysttest/testbookmark/ を呼び出してみたところ,何も表示されません.テンプレートが呼ばれていないようです.

myapp_server.pl の出力は以下の通り.
Use of uninitialized value in print \
at /usr/lib/perl5/site_perl/5.8.8/Catalyst/Engine.pm line 583.
[info] *** Request 1 (0.040/s) [27232] [Fri Jan 19 18:56:25 2007] ***
[debug] "GET" request for "catalysttest/testbookmark/" from "127.0.0.1"
[debug] Path is "catalysttest/testbookmark/"
[debug] Nothing to forward to
[info] Request took 0.274999s (3.636/s)
.----------------------------------------------------------------+-----------.
| Action                                                         | Time      |
+----------------------------------------------------------------+-----------+
| /catalysttest/testbookmark/index                               | 0.010304s |
| /catalysttest/testbookmark/end                                 | 0.002112s |
'----------------------------------------------------------------+-----------'

index も end も期待どおり呼ばれているのですが...テンプレートが読み込まれていないようです.テンプレートは以下のようになっています.

root/tmpl/testbookmark-index.tt
     1  [% INCLUDE header.tt %]
     2  [% INCLUDE bookmark_list.tt %]
     3  [% INCLUDE footer.tt %]

root/tmpl/header.tt
     1  <html>
     2  <head>
     3  <title>Test Bookmark</title>
     4  <link rel="stylesheet" href="/static/css/style.css" 
type="text/css" media="all">
     5  </head>
     6  <body>
     7   [% c.prototype.define_javascript_functions %]
     8  <h1 id="h1">Test Bookmark</h1>
     9  <div class="menu">
    10  : <a href="/">Home</a> : <a href="/regist">Regist</a> : <br><br>
    11  </div>
    12  <div class="left_menu">
    13  <form action="/regist_execute/" method="GET">
    14   <div>
    15   Quick Regist bookmark:<br>
    16   <input type=text id="bookmark" name="url"/>
    17   [% c.prototype.observe_field( 'bookmark', 
{ url => base _ 'ajax_regist/', with => "'url=' + value", 
'update' => 'main' } ) %]
    18  </div>
    19  <div id="regist_submit"><input type="submit" 
value="regist"></div>
    20  </form>
    21  </div>
    22  <script type="text/javascript">
    23  <!--
    24  $("regist_submit").style.display = 'none'; 
    25
    26  function drop_hover(draggable, droppable, pcnt){alert(draggable)}
    27  // -->
    28  </script>
    29  <div id="main">

root/tmpl/bookmark_list.tt

     1  <div class="bookmark_list">
     2  [% IF msg %]
     3  <div class="bookmark_error">[% msg %]</div>
     4  [% END %]
     5  [% FOREACH v = bookmark %]
     6  <div class="each_bookmark">
     7  <a name="[% v.comment %]" href="[% v.url %]">[% v.title %]</a>
 at [% v.record_time %]<br>
     8   [ <a href="/edit?bookmark_id=[% v.bookmark_id %]">編集</a> / 
<a href="/delete?bookmark_id=[% v.bookmark_id %]">削除</a> ]
     9  </div>
    10  [% END %]
    11  </div>

root/tmpl/footer.tt

     1  </div>
     2  </div>
     3  </body>
     4  </html>


この連載,もう少し続きそうです.

以下は今までの記事です.

 

カテゴリ:開発日記

いかちょー (2007-01-19 20:01) | コメント(0)| トラックバック(5)

トラックバック(5)

トラックバックURL:

コメント

コメントを投稿

名前

電子メール

URL

ログイン情報を記憶

コメント

プロフィール

いかちょー

いかちょーこと五十嵐智です。
情報セキュリティ分野に興味があります。
一応、CISSP ホルダー。

SF者です。どうぞよろしく。

プロフィール詳細 (Google プロフィール)

RSSフィード

コミュニティの人々 | ソフトウェア | 技術紹介 | 適用分野 | Tyzohとは | ご意見お問い合わせ

Copyright (C) 2004-2011 Nihon Unisys, Ltd. All Rights Reserved.
Powered by Movable Type Open Source