use of org.apache.wicket.request.Url in project wicket by apache.
the class AbstractMapper method extractPageParameters.
/**
* Extracts {@link PageParameters} from the URL using the given {@link IPageParametersEncoder} .
*
* @param request
* @param segmentsToSkip
* how many URL segments should be skipped because they "belong" to the
* {@link IRequestMapper}
* @param encoder
* @return PageParameters instance
*/
protected PageParameters extractPageParameters(final Request request, int segmentsToSkip, final IPageParametersEncoder encoder) {
Args.notNull(request, "request");
Args.notNull(encoder, "encoder");
// strip the segments and first query parameter from URL
Url urlCopy = new Url(request.getUrl());
while ((segmentsToSkip > 0) && (urlCopy.getSegments().isEmpty() == false)) {
urlCopy.getSegments().remove(0);
--segmentsToSkip;
}
if (!urlCopy.getQueryParameters().isEmpty() && Strings.isEmpty(urlCopy.getQueryParameters().get(0).getValue())) {
removeMetaParameter(urlCopy);
}
return encoder.decodePageParameters(urlCopy);
}
use of org.apache.wicket.request.Url in project wicket by apache.
the class UrlPathPageParametersEncoderTest method encodeNamedParameters.
/**
* Encode named parameters in the segments (so they look like indexed parameters)
*/
@Test
void encodeNamedParameters() {
PageParameters params = new PageParameters();
params.add("name1", "value1", INamedParameters.Type.MANUAL);
params.add("name2", "value2", INamedParameters.Type.MANUAL);
UrlPathPageParametersEncoder encoder = new UrlPathPageParametersEncoder();
Url url = encoder.encodePageParameters(params);
assertEquals("name1/value1/name2/value2", url.toString());
}
use of org.apache.wicket.request.Url in project wicket by apache.
the class UrlPathPageParametersEncoder method encodePageParameters.
@Override
public Url encodePageParameters(PageParameters params) {
Args.notNull(params, "params");
Args.isTrue(params.getIndexedCount() == 0, "This encoder does not support indexed page parameters. Specified parameters: %s", params);
Url url = new Url();
for (PageParameters.NamedPair pair : params.getAllNamed()) {
url.getSegments().add(pair.getKey());
url.getSegments().add(pair.getValue());
}
return url;
}
use of org.apache.wicket.request.Url in project wicket by apache.
the class UrlRendererTest method renderFullUrlWithRelativeArgument.
@Test
void renderFullUrlWithRelativeArgument() {
Url baseUrl = Url.parse("one/two/three");
baseUrl.setProtocol("http");
baseUrl.setHost("www.example.com");
baseUrl.setPort(8888);
UrlRenderer renderer = new UrlRenderer(new MockWebRequest(baseUrl));
// this is needed because MockWebRequest cuts data
renderer.setBaseUrl(baseUrl);
String fullUrl = renderer.renderFullUrl(Url.parse("../four"));
assertEquals("http://www.example.com:8888/one/four", fullUrl);
}
use of org.apache.wicket.request.Url in project wicket by apache.
the class UrlRendererTest method rendersRelativeUrl.
@Test
void rendersRelativeUrl() {
Url contextRelativeUrl = new Url();
contextRelativeUrl.setProtocol("http");
contextRelativeUrl.setHost("localshot");
contextRelativeUrl.setPort(8080);
contextRelativeUrl.setContextRelative(true);
contextRelativeUrl.getSegments().addAll(asList("", ""));
UrlRenderer r1 = new UrlRenderer(new MockWebRequest(contextRelativeUrl));
assertEquals("../foo", r1.renderRelativeUrl(Url.parse("foo")));
}
Aggregations