/** * Convenience method that removes all query parameters with given name and adds new query * parameter with specified name and value * * @param name * @param value */ public void setQueryParameter(final String name, final Object value) { removeQueryParameters(name); addQueryParameter(name, value); }
/** * Convenience method that removes all query parameters with given name and adds new query * parameter with specified name and value * * @param name * @param value */ public void setQueryParameter(final String name, final Object value) { removeQueryParameters(name); addQueryParameter(name, value); }
public Url mapHandler(IRequestHandler requestHandler) { Url url = mountedMapper.mapHandler(requestHandler); if (url != null) { List<String> newUrlSegments = new ArrayList<String>(mountedSegments.length); for (String segment : mountedSegments) { String newSegment = segment; String placeholder = getPlaceholder(segment); if (placeholder != null) { // segment is parameter // set it as Url segment and remove it from QueryParameters newSegment = url.getQueryParameter(placeholder).getValue(); url.removeQueryParameters(placeholder); } newUrlSegments.add(newSegment); } List<String> urlSegments = url.getSegments(); urlSegments.remove(0); urlSegments.addAll(0, newUrlSegments); int lastIndex = urlSegments.size() - 1; if (urlSegments.get(lastIndex).equals(homePageName)) { urlSegments.remove(lastIndex); } } return url; }
@Override public IRequestHandler map(Exception e) { if (e instanceof ObjectNotFoundException) { //see https://github.com/jutzig/jabylon/issues/175 Request request = RequestCycle.get().getRequest(); Url url = request.getUrl(); List<QueryParameter> parameters = url.getQueryParameters(); boolean redirected = false; for (QueryParameter queryParameter : parameters) { if(queryParameter.getValue().isEmpty() && queryParameter.getName().matches("\\d+")) { url.removeQueryParameters(queryParameter.getName()); LOG.error("Detected request to expired CDO ID. Attempting redirect to "+url.toString(),e); Session.get().error("Sorry, this page content has expired. Please try again"); redirected = true; break; } } if(redirected) return new RedirectRequestHandler("/"+url.toString()); } return super.map(e); }
url.removeQueryParameters(PortletRequestMapper.PORTLET_URL); return url.toString();