Catalyst::Plugin::FillInForm概要典型的にはFormVliadatorと一緒に使う。その場合、基本的な動作は以下のようになる。
手順以下のようにアプリケーションクラス (lib/Myapp.pm)でモジュールを指定することで自動的にフォームが埋められる。 use Catalyst qw/ FillInForm FormValidator::Simple / 手動でセットする場合は、アクションクラスでCatalyst::Requestオブジェクトを以下のようにする。 $c->req->param('sex','男性') if $c->req->param('sex') eq ''; # 性別の指定がなければ男性にする ただし、ヴァリデーションエラーがなかった場合は、フォームは埋められない。このような場合でも埋めたい時は以下のようにアクションクラス(lib/Myapp/Controller/Member.pm )のend()に書く。 fillform()が呼ばれる前にHTMLテンプレートがレンダーされてなければならないので、直前にforward()する必要がある。 sub end : ActionClass('RenderView') { my ( $self, $c ) = @_; $c->forward('Myapp::View::TT') unless $c->res->output; $c->fillform($c->req->params); }; |
|