public interface IRequestMapper
Requests the implementation doesn't recognize, the
mapRequest(Request)methods must return
null. The workflow is: the Application class collects a set of
IRequestMappers and for each request the
request cycleasks these mappers whether any of them knows how to handle the current
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:
IRequestHandlerthat 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-
IRequestHandler. This is needed at markup rendering time to create the urls for links, forms' action attribute, etc.
IRequestHandler mapRequest(Request request)
request- provides access to request data (i.e. Url and Parameters)
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
/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.
Copyright © 2006–2020 Apache Software Foundation. All rights reserved.