/foo/bar/index -> Foo::index()
/test123.html -> Bar::default()
/cookies/list/fresh -> Cookies::list()
####
# /foo/bar/index
package Foo::Bar;
sub index : Relative { ... }
# /test123.html
package Foo::Bar;
sub test : Path('/test123.html') { ... }
# /cookies/list/fresh
package Cookies;
sub list : Relative Args(1) { ... }
##
##
@Servlet(urlMappings={"/foo", "/bar"})
public class ControllerWithAnnotations {
@GET
public void handleGet(HttpServletRequest req, HttpServletResponse res) { ... }
}
##
##
# /foo/bar/index
on 'foo/bar/index' => do { ... }
# /test123.index
on 'test123.html' => do { ... }
# /cookies/list/fresh
on '/cookies/list/*' => do { ... }
##
##
__PACKAGE__->action('/foo/bar/index' => sub { ... });
##
##
# /foo/bar/index
map.connect 'foo/bar/index', :controller => "foo", :action => "index"
# /test123.html
map.connect 'test123.html', :controller => "foo", :action => "test"
# /cookies/list/fresh
map.connect ':controller/:action/:quality', :controller => "cookies", :action => "list",
:quality => "fresh", :requirements => { :quality => /\w+/ }
##
##
<%= link_to "Fresh Cookies", :controller => "cookies", :action => "list", :quality => "fresh" %>
##
##
# /foo/bar/index
r.match("/foo/bar/index").to(:controller => "foo", :action => "index")
# /test123.html
r.match("/test123.html").to(:controller => "foo", :action => "test")
# /cookies/list/fresh
r.match(%r[^/cookies/list/(\w+)$]).to(:controller => "cookies", :action => "list", :quality => 'path[1]')
##
##
urlpatterns = patterns('',
(r'^foo/bar/index$', 'foo.views.index'),
(r'^test123\.html$', 'foo.views.test'),
(r'^cookies/list/(\w+)$', 'cookies.views.list'),
)
##
##
# /foo/bar/index
$r->route('/foo/bar/index')->to(controller => 'foo', action => 'index');
# /test123.html
$r->route('/test123.html')->to(controller => 'foo', action => 'test');
# /cookies/list/fresh
$r->route('/:controller/:action/:quality', quality => qr/\w+/)
->to(controller => 'cookies', action => 'list', quality => 'fresh');
$c->url_for(controller => 'cookies', action => 'list', quality => 'fresh');