private static PortletURL _getCurrentV3( LiferayPortletRequest liferayPortletRequest, LiferayPortletResponse liferayPortletResponse) { PortletURL portletURL = liferayPortletResponse.createRenderURL( MimeResponse.Copy.NONE); MutableRenderParameters mutableRenderParameters = portletURL.getRenderParameters(); RenderParameters renderParameters = liferayPortletRequest.getRenderParameters(); Set<String> renderParameterNames = renderParameters.getNames(); renderParameter: for (String renderParameterName : renderParameterNames) { String[] values = renderParameters.getValues(renderParameterName); // Do not set parameter values that are over 32 kb. See LEP-1755. if (values == null) { continue; } for (String value : values) { if ((value != null) && (value.length() > _CURRENT_URL_PARAMETER_THRESHOLD)) { continue renderParameter; } } mutableRenderParameters.setValues(renderParameterName, values); } return portletURL; }
@Override protected void addParameter(String key, String value) { if ((key == null) || (key.length() == 0)) { throw new IllegalArgumentException("the argument key must not be null or empty!"); } if (value == null || value.length() == 0) { params.removeParameter(key); } else { String[] arrayVals = params.getValues(key); if (arrayVals != null) { List<String> vals = new ArrayList<String>(Arrays.asList(arrayVals)); vals.add(value); params.setValues(key, vals.toArray(new String[0])); } else { params.setValue(key, value); } } }
protected void addRenderParameter(String key, String value) { if ((key == null) || (key.length() == 0)) { throw new IllegalArgumentException("the argument key must not be null or empty!"); } if (value == null || value.length() == 0) { rparams.removeParameter(key); } else { String[] arrayVals = rparams.getValues(key); if (arrayVals != null) { List<String> vals = new ArrayList<String>(Arrays.asList(arrayVals)); vals.add(value); rparams.setValues(key, vals.toArray(new String[0])); } else { rparams.setValue(key, value); } } }
/** * Remove & destroy all beans. if a response is provided, store the bean state. * * @param resp The state aware response */ protected void removeAll(StateAwareResponse resp) { for (Contextual<?> bean : beans.keySet()) { if (resp != null) { PortletSerializable thisBean = (PortletSerializable) beans.get(bean).instance; String[] vals = thisBean.serialize(); String pn = config.getParamName((Bean<?>) bean); resp.getRenderParameters().setValues(pn, vals); if (isTrace) { StringBuilder txt = new StringBuilder(128); txt.append("Stored parameter for portlet with namespace: "); txt.append(resp.getNamespace()); txt.append(", paramName: ").append(pn); txt.append(", Values: ").append(Arrays.toString(vals)); LOG.trace(txt.toString()); } } remove(bean); } } }
getRenderParameters().setValues(name, portletSerializable.serialize());
/** * Used when action scoped request attribute processing is active in order * to set the scope ID render parameter on the response and generated URLs * * @param values The values array to set. If null, the parameter is removed. */ @Override public void setActionScopedId(String windowId, String[] values) { if (this instanceof PortletStateAwareResponseContext) { ((PortletStateAwareResponseContext)this).getRenderParameters(windowId).setValues(ACTION_SCOPE_ID, values); } else { PortalURLParameter pup = new PortalURLParameter(windowId, ACTION_SCOPE_ID, values, PARAM_TYPE_RENDER); if (values == null) { this.getPortalURL().removeParameter(pup); } else { pup.setPersistent(true); this.getPortalURL().setParameter(pup); } } } }