Catalyst::Manual::Tutorial::02_CatalystBasics
时间:2010-08-18 来源:horsley
sub index :Path :Args(0) {
$c->response->body( $c->welcome_message ); |
在 Catalyst 的新版本中,default index 不建议使用 :Private 。
:Path 表示匹配所有 url ,因为 Path 后面没有跟任何路径。
:Args(0) 表示只接受不带任何参数的 url 。
三、添加 action
sub hello :Global { |
[debug] Loaded Path actions:
.-------------------------------------+--------------------------------------.
| Path | Private |
+-------------------------------------+--------------------------------------+
| / | /index |
| / | /default |
| /hello | /hello |
'-------------------------------------+--------------------------------------'
...
四、 创建 view
$ script/hello_create.pl view TT TT
查看文件: lib/Hello/View/TT.pm ,你会发现仅仅做了些配置,将扩展设置为 .tt。
学习 TT 的完整用法可以参考: http://template-toolkit.org/,我们这里只学简单的。
1、创建 root/hello.tt 文件,内容如下,这里 template.name 表示 hello.tt ,
你可以根据需要写入 perl 变量:
<p> |
2、修改 lib/Hello/Controller/Root.pm 如下:
sub hello :Global { |
stash 的不同写法,全部有效(上面的写法流行):
- $c->stash->{template} = 'hello.tt';
- $c->stash(template => 'hello.tt', foo => 'bar',
another_thing => 1); - $c->stash({template => 'hello.tt', foo => 'bar',
another_thing => 1});
五、
1、$ script/hello_create.pl controller Site
查看文件:lib/Hello/Controller/Site.pm
sub test :Local { |
Local 指明该 action 响应 url: "controller/method",这里是site/test;
关于action 的更多知识: http://search.cpan.org/~hkclark/Catalyst-Manual-5.8004/lib/Catalyst/Manual/Intro.pod#Actions
2、
这里我们其实不用指定 template , TT 会自动匹配 "controller/method.tt" 模板。
编辑:root/site/test.tt,内容如下:
<p>Hello, [% username %]!</p> |
本章结束