Package org.apache.wicket.request
Interface IRequestMapper
-
- All Known Subinterfaces:
ICompoundRequestMapper
,IRequestMapperDelegate
- All Known Implementing Classes:
AbstractBookmarkableMapper
,AbstractComponentMapper
,AbstractMapper
,AbstractResourceReferenceMapper
,BasicResourceReferenceMapper
,BookmarkableMapper
,BufferedResponseMapper
,CompoundRequestMapper
,CryptoMapper
,HomePageMapper
,HttpsMapper
,MountedMapper
,PackageMapper
,PageInstanceMapper
,ParentPathReferenceRewriter
,ReportCSPViolationMapper
,ResourceMapper
,ResourceReferenceMapper
,SystemMapper
,UrlResourceReferenceMapper
public interface IRequestMapper
MapsIRequestHandler
(s) intoUrl
(s) andRequest
(s) toIRequestHandler
(s). ForIRequestHandler
s andRequest
s the implementation doesn't recognize, themapHandler(IRequestHandler)
andmapRequest(Request)
methods must returnnull
. The workflow is: the Application class collects a set ofIRequestMapper
s and for each request therequest cycle
asks these mappers whether any of them knows how to handle the currentRequest
’surl
. 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:- To create
IRequestHandler
that will produce the response. When a request comes Wicket usesgetCompatibilityScore(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
. -
The second task is to produce
Url
for anIRequestHandler
. This is needed at markup rendering time to create the urls for links, forms' action attribute, etc.
- Author:
- Matej Knopp
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method 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)
-
-
-
Method Detail
-
mapRequest
IRequestHandler mapRequest(Request request)
- Parameters:
request
- provides access to request data (i.e. Url and Parameters)- Returns:
- RequestHandler instance or
null
-
getCompatibilityScore
int getCompatibilityScore(Request request)
Returns the score representing how compatible this request mapper is to processing the given request. When a request comes in all mappers are scored and are tried in order from highest score to lowest.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.
- Parameters:
request
-- Returns:
- the compatibility score, e.g. count of matching segments
-
mapHandler
Url mapHandler(IRequestHandler requestHandler)
- Parameters:
requestHandler
-- Returns:
- Url instance or
null
.
-
-