public interface IRequestMapper
IRequestHandler
(s) into Url
(s) and Request
(s) to
IRequestHandler
(s). For IRequestHandler
s and Request
s the implementation
doesn't recognize, the mapHandler(IRequestHandler)
and mapRequest(Request)
methods must return null
.
The workflow is: the Application class collects a set of IRequestMapper
s and for each
request the request cycle
asks these mappers whether any of them knows how
to handle the current Request
’s url
. Wicket pre-configures several mappers
which are used for the basic application functionality like a mapper for the home page, a mapper
for Wicket resources, for bookmarkable pages, etc. The user application can add additional
mappers with the various WebApplication#mountXYZ() methods.
The mapper has two main tasks:
IRequestHandler
that will produce the response. When a request comes Wicket
uses getCompatibilityScore(Request)
to decide which mapper should be asked first to
process the request. If two mappers have the same score then the one added later is asked first.
This way user’s mappers have precedence than the system ones. If a mapper knows how to handle the
request’s url then it should return non-null
IRequestHandler
.Url
for an IRequestHandler
. This is needed at
markup rendering time to create the urls for links, forms' action attribute, etc.Modifier and Type | Method and Description |
---|---|
int |
getCompatibilityScore(Request request)
Returns the score representing how compatible this request mapper is to processing the given
request.
|
Url |
mapHandler(IRequestHandler requestHandler)
|
IRequestHandler |
mapRequest(Request request)
|
IRequestHandler mapRequest(Request request)
request
- provides access to request data (i.e. Url and Parameters)null
int getCompatibilityScore(Request request)
A good criteria for calculating the score is the number of matched url segments. For example
when there are two mappers for a mounted page, one mapped to /foo
another to
/foo/bar
and the incoming request URL is /foo/bar/baz, the mapping
to /foo/bar
should probably handle the request first as it has matching segments
count of 2 while the first one has only matching segments count of 1.
Note that the method can return value greater then zero even if the mapper does not recognize the request.
request
- Url mapHandler(IRequestHandler requestHandler)
requestHandler
- null
.Copyright © 2006–2022 Apache Software Foundation. All rights reserved.