SimpleSite logo
Что это? | Документация | Скачать

Пример обработки акшенов


#!/usr/bin/perl
use CGI::WebOut;
use CGI::WebIn;
use SS2::SS2;
use SS2::Action;

start_headers();

local $a = SS2::Action->new;
$a->add('a1', \&a1);
$a->add('a2', \&a2);

my $page      = $IN{page} || '';
my $action    = $a->getW($page); 
my $subaction = $a->getS($page); # следующее действие

if ($a->exists($action)) {
    $a->run($action,$subaction);
}


print "Hello World";
exit;

sub a1 {
    my $param = shift;
    print "a1 ok \n"
    print $param;
}
sub a2 { print "a2 ok"; }

В скрипте задаются два обработчика для двух акшенов — a1 и a2. После получения запроса вида "script.pl?page=a1/b1/c1" в $page будет "a1/b1/c1". $a->getW() дает первую часть этого — "a1", После $a->run() вызовется a1() и ей в качестве параметра передасться "b1/c1"

Таким образом можно задавать различный обработчики для разных действий. Дополнительный параметры они могут получать как ввиду подзапроса (часть после a1/), так и ввиде других переменных в get/post запросе "script.pl?page=a1/b1/c1¶m2=value2"

© Nick Knutov, 2004-2008