在Perl催化剂中通过URL传递参数

时间:2014-06-05 05:26:38

标签: perl catalyst

是否可以在perl催化剂中通过URL传递参数 我有一个链接

<a href="/vbo/mortgage_reduction/yearly" >Yearly </a>

我可以通过链接传递参数,例如

<a href="/vbo/mortgage_reduction/yearly/1" >Yearly</a>

如果是这样,我如何获取模块中的值?

1 个答案:

答案 0 :(得分:3)

我刚开始学习Catalyst,但我可以说这似乎是:Args的用途。您可以指定所需的参数数量,并将它们添加到@_。我做了这个测试:

sub test :Local :Args(1) {
    my ( $self, $c, $word ) = @_;
    $c->response->body($word);
}

并加载http://localhost:3000/test/hello。这显示了&#34;你好&#34;在浏览器和服务器输出中:

[info] *** Request 1 (0.083/s) [14444] [Thu Jun  5 11:29:18 2014] ***
[debug] Path is "test"
[debug] Arguments are "hello"
[debug] "GET" request for "test/hello" from "127.0.0.1"
[debug] Response Code: 200; Content-Type: text/html; charset=utf-8; Content-Length: unknown
[info] Request took 0.00722s (138.504/s)
.------------------------------------------------------------+-----------.
| Action                                                     | Time      |
+------------------------------------------------------------+-----------+
| /test                                                      | 0.000194s |
| /end                                                       | 0.000265s |
'------------------------------------------------------------+-----------'

Catalyst::Manual::Intro下的:CaptureArgs

记录了这一点

一系列控制器方法也可以检查相同的请求,每个控制器方法都会使用{{1}}和Action types.