public HstContainerURL createURL(HstContainerURL baseContainerURL, HstURL hstUrl) { HstContainerURLImpl containerURL = (HstContainerURLImpl) ((HstContainerURLImpl) baseContainerURL).clone(); containerURL.setActionWindowReferenceNamespace(null); containerURL.setResourceWindowReferenceNamespace(null); String type = hstUrl.getType(); if (HstURL.ACTION_TYPE.equals(type)) { containerURL.setActionWindowReferenceNamespace(hstUrl.getReferenceNamespace()); mergeParameters(containerURL, hstUrl.getReferenceNamespace(), hstUrl.getParameterMap()); } else if (HstURL.RESOURCE_TYPE.equals(type)) { containerURL.setResourceWindowReferenceNamespace(hstUrl.getReferenceNamespace()); containerURL.setResourceId(hstUrl.getResourceID()); mergeParameters(containerURL, hstUrl.getReferenceNamespace(), hstUrl.getParameterMap()); } else { mergeParameters(containerURL, hstUrl.getReferenceNamespace(), hstUrl.getParameterMap()); } return containerURL; }
/** * Copies the parameters from map to the BaseURL. * @param url BaseURL * @return void */ protected void setUrlParameters(HstURL url) { for (String key : removedParametersList) { url.setParameter(key, (String) null); } for(String key : parametersMap.keySet()) { List<String> valueList = parametersMap.get(key); String[] valueArray = valueList.toArray(ArrayUtils.EMPTY_STRING_ARRAY); url.setParameter(key, valueArray); } }
@Override public int doEndTag() throws JspException{ try { HstURL url = getUrl(); if (url == null) { throw new IllegalStateException("internal error: url not set"); } url.setResourceID(getResourceId()); setUrlParameters(url); HttpServletResponse response = (HttpServletResponse) pageContext.getResponse(); // properly encoding urls to allow non-cookie enabled sessions - ref.) PLUTO-252 String urlString = response.encodeURL(url.toString()); if (escapeXml) { urlString = doEscapeXml(urlString); } HstRequestContext requestContext = HstRequestUtils.getHstRequestContext((HttpServletRequest) pageContext.getRequest()); if (mustURLBeFullyQualified(requestContext)) { urlString = HstRequestUtils.getFullyQualifiedHstURL(requestContext, url, true); } TagUtils.writeOrSetVar(urlString, var, pageContext, scope); return EVAL_PAGE; } finally { cleanup(); } }
@Override public void processWindowBeforeRender(HstComponentWindow window, HstRequest request, HstResponse response) { HstURL compUrl = createAsyncComponentRenderingURL(request, response); final Comment ssiComment = response.createComment("#include virtual=\"" + compUrl.toString() + "\" "); response.addPreamble(ssiComment); } }
url.setResourceID(getResourceId());
if (isContainerResource()) { HstURL hstUrl = requestContext.getURLFactory().createURL(HstURL.RESOURCE_TYPE, ContainerConstants.CONTAINER_REFERENCE_NAMESPACE, null, requestContext, explicitContextPath); hstUrl.setResourceID(path); urlString = hstUrl.toString(); } else { urlString = requestContext.getURLFactory().createURL(HstURL.RENDER_TYPE, null, navURL, requestContext, explicitContextPath).toString(); if (StringUtils.isEmpty(path) && StringUtils.isEmpty(urlString)) {
/** * Adding componentRendering URL link to the linkable model. * @param hstResponse HstResponse * @param linkableModel linkable model */ private void addComponentRenderingURLLink(HstResponse hstResponse, IdentifiableLinkableMetadataBaseModel linkableModel) { HstURL compRenderURL = hstResponse.createComponentRenderingURL(); linkableModel.putLink(ContainerConstants.LINK_NAME_COMPONENT_RENDERING, new LinkModel(compRenderURL.toString())); }
public String toUrlForm(HstRequest request, HstResponse response, boolean external) { String characterEncoding = response.getCharacterEncoding(); if (characterEncoding == null) { characterEncoding = "UTF-8"; } if(path == null) { log.warn("Unable to rewrite link. Return EVAL_PAGE"); return null; } String urlString = null; if (this.containerResource) { HstURL hstUrl = response.createResourceURL(ContainerConstants.CONTAINER_REFERENCE_NAMESPACE); hstUrl.setResourceID(path); urlString = hstUrl.toString(); } else { urlString = response.createNavigationalURL(path).toString(); } if(external) { VirtualHost vhost = request.getRequestContext().getResolvedSiteMapItem().getResolvedSiteMount().getSiteMount().getVirtualHost(); urlString = vhost.getBaseURL(request) + urlString; } return urlString; }
public HstContainerURL createURL(HstContainerURL baseContainerURL, HstURL hstUrl) { HstContainerURLImpl containerURL; try { containerURL = (HstContainerURLImpl) ((HstContainerURLImpl) baseContainerURL).clone(); } catch (CloneNotSupportedException e) { throw new IllegalStateException("Clone not supported on the container url. " + e); } containerURL.setActionWindowReferenceNamespace(null); containerURL.setResourceWindowReferenceNamespace(null); containerURL.setComponentRenderingWindowReferenceNamespace(null); String type = hstUrl.getType(); if (HstURL.ACTION_TYPE.equals(type)) { containerURL.setActionWindowReferenceNamespace(hstUrl.getReferenceNamespace()); mergeParameters(containerURL, hstUrl.getReferenceNamespace(), hstUrl.getParameterMap()); } else if (HstURL.RESOURCE_TYPE.equals(type)) { containerURL.setResourceWindowReferenceNamespace(hstUrl.getReferenceNamespace()); containerURL.setResourceId(hstUrl.getResourceID()); mergeParameters(containerURL, hstUrl.getReferenceNamespace(), hstUrl.getParameterMap()); } else if (HstURL.COMPONENT_RENDERING_TYPE.equals(type)) { containerURL.setComponentRenderingWindowReferenceNamespace(hstUrl.getReferenceNamespace()); mergeParameters(containerURL, hstUrl.getReferenceNamespace(), hstUrl.getParameterMap()); } else { mergeParameters(containerURL, hstUrl.getReferenceNamespace(), hstUrl.getParameterMap()); } return containerURL; }
@Override public void processWindowBeforeRender(HstComponentWindow window, HstRequest request, HstResponse response) { HstURL url = createAsyncComponentRenderingURL(request, response); Element hiddenDiv = response.createElement("div"); hiddenDiv.setAttribute("id", url.toString()); hiddenDiv.setAttribute("class", OBFUSCATED_ASYNC_VAR); hiddenDiv.setAttribute("style", "display:none;"); response.addPreamble(hiddenDiv); if (!response.containsHeadElement(HEAD_SCRIPT_KEY_HINT)) { Element headScript = response.createElement("script"); headScript.setAttribute("type","text/javascript"); headScript.setTextContent(getIOScript()); response.addHeadElement(headScript, HEAD_SCRIPT_KEY_HINT); Element endBodyScript = response.createElement("script"); endBodyScript.setAttribute(ContainerConstants.HEAD_ELEMENT_CONTRIBUTION_CATEGORY_HINT_ATTRIBUTE, "scripts"); endBodyScript.setAttribute("type", "text/javascript"); endBodyScript.setTextContent(OBFUSCATED_HIPPO_HST_VAR + ".AsyncPage.load();"); response.addHeadElement(endBodyScript, "asyncLoad"); } }
/** * Copies the parameters from map to the BaseURL. * @param url BaseURL * @return void */ protected void setUrlParameters(HstURL url) { for(String key : parametersMap.keySet()) { List<String> valueList = parametersMap.get(key); String[] valueArray = valueList.toArray(new String[0]); url.setParameter(key, valueArray); } for (String key : removedParametersList) { url.setParameter(key, (String) null); } }
HstURLFactory urlFactory = requestContext.getURLFactory(); HstURL url = urlFactory.createURL(HstURL.COMPONENT_RENDERING_TYPE, window.getReferenceNamespace(), null, requestContext); populatingAttributesMap.put("url", url.toString()); populatingAttributesMap.put("refNS", window.getReferenceNamespace()); final Channel channel = requestContext.getResolvedMount().getMount().getChannel();