List of usage examples for org.apache.wicket.request Url parse
public static Url parse(CharSequence _url, Charset charset)
From source file:org.artifactory.webapp.wicket.application.ArtifactoryWebRequest.java
License:Apache License
/** * Returns base url without context or filter mapping. <p> Example: if current url is <p/> * <pre>/*from w ww . jav a 2 s. c o m*/ * http://localhost:8080/context/filter/mapping/wicket/bookmarkable/com.foo.Page?1&id=2 * </pre> * <p/> the base url is <em>wicket/bookmarkable/com.foo.Page</em> </p> * * @see org.apache.wicket.request.Request#getClientUrl() */ @Override public Url getClientUrl() { if (errorAttributes != null && !Strings.isEmpty(errorAttributes.getRequestUri())) { String problematicURI = Url.parse(errorAttributes.getRequestUri(), getCharset()).toString(); return getContextRelativeUrl(problematicURI, filterPrefix); } else if (forwardAttributes != null && !Strings.isEmpty(forwardAttributes.getRequestUri())) { String forwardURI = Url.parse(forwardAttributes.getRequestUri(), getCharset()).toString(); // -- START BUG FIX // [YS] because it's a forward URL, the wicket filterPrefix might not be part or the URL // detect it by taking the second path element (e.g., /contextPath/forwardFilterPrefix/restOfPath) int contextPathLength = httpServletRequest.getContextPath().length(); int forwardFilterPrefixStart = contextPathLength + 1; // the trailing '/' String servletPath = forwardURI.substring(forwardFilterPrefixStart); // servlet path without leading '/' int forwardFilterPrefixEnd = servletPath.indexOf('/'); if (forwardFilterPrefixEnd == -1) { forwardFilterPrefixEnd = servletPath.length(); } String forwardFilterPrefix = forwardURI.substring(forwardFilterPrefixStart, forwardFilterPrefixStart + forwardFilterPrefixEnd); return getContextRelativeUrl(forwardURI, forwardFilterPrefix); // -- END BUG FIX } else if (!isAjax()) { return getContextRelativeUrl(httpServletRequest.getRequestURI(), filterPrefix); } else { String base = null; base = getHeader(HEADER_AJAX_BASE_URL); if (base == null) { base = getRequestParameters().getParameterValue(PARAM_AJAX_BASE_URL).toString(null); } Checks.notNull(base, "Current ajax request is missing the base url header or parameter"); return setParameters(Url.parse(base, getCharset())); } }
From source file:org.artifactory.webapp.wicket.application.ArtifactoryWebRequest.java
License:Apache License
private Url getContextRelativeUrl(String uri, String filterPrefix) { if (filterPrefix.length() > 0 && !filterPrefix.endsWith("/")) { filterPrefix += "/"; }/*from w w w . ja v a 2 s . c om*/ StringBuilder url = new StringBuilder(); uri = Strings.stripJSessionId(uri); final int start = httpServletRequest.getContextPath().length() + filterPrefix.length() + 1; url.append(uri.substring(start)); if (errorAttributes == null) { String query = httpServletRequest.getQueryString(); if (!Strings.isEmpty(query)) { url.append('?'); url.append(query); } } return setParameters(Url.parse(url.toString(), getCharset())); }
From source file:org.artifactory.webapp.wicket.application.ArtifactoryWebRequest.java
License:Apache License
@Override public String getPrefixToContextPath() { PrependingStringBuffer buffer = new PrependingStringBuffer(); Url filterPrefixUrl = Url.parse(filterPrefix, getCharset()); for (int i = 0; i < filterPrefixUrl.getSegments().size() - 1; ++i) { buffer.prepend("../"); }/* w ww . j ava 2 s . co m*/ return buffer.toString(); }
From source file:sk.drunkenpanda.leaflet.AbstractLeafletTest.java
License:Apache License
/** * Prepares request that triggers AJAX behavior and contains parameter with given name and value. * * @param tester the wicket tester which triggers behavior * @param behavior the behavior that should be triggered * @param parameterName the name of parameter * @param parameterValue the value of parameter * @return mock HTTP request that triggers given behavior *//*w w w. j av a2 s . c o m*/ protected MockHttpServletRequest prepareRequest(WicketTester tester, AbstractAjaxBehavior behavior, String parameterName, String parameterValue) { MockHttpServletRequest request = new MockHttpServletRequest(tester.getApplication(), tester.getHttpSession(), tester.getServletContext()); Url url = Url.parse(behavior.getCallbackUrl().toString(), Charset.forName(request.getCharacterEncoding())); // make url suitable for wicket tester use. usually this involves stripping any leading .. // segments to make the url absolute for (Iterator<String> segments = url.getSegments().iterator(); segments.hasNext();) { String segment = segments.next(); if (segment.equals("..") || segment.equals(".")) { segments.remove(); } } request.addHeader("Wicket-Ajax", "true"); request.addHeader("Wicket-Ajax-BaseURL", url.toString()); request.setUrl(url); request.setParameter(parameterName, parameterValue); return request; }