diff --git a/engine/src/main/java/com/agiletec/aps/system/services/url/AbstractURLManager.java b/engine/src/main/java/com/agiletec/aps/system/services/url/AbstractURLManager.java index 05169d45a2..a4590a8021 100644 --- a/engine/src/main/java/com/agiletec/aps/system/services/url/AbstractURLManager.java +++ b/engine/src/main/java/com/agiletec/aps/system/services/url/AbstractURLManager.java @@ -71,7 +71,14 @@ protected String createQueryString(Map params, boolean escapeAmp String paramSeparator = escapeAmp ? "&" : "&"; while (keyIter.hasNext()) { String name = keyIter.next(); - buf.append(this.encodeParam(name)).append("=").append(this.encodeParam(params.get(name))); + String encodeName = this.encodeParam(name); + String[] paramValues = params.get(name).split(PageURL.PARAMETERS_SEAPARATOR); + for (int i = 0; i < paramValues.length; i++ ) { + buf.append(encodeName).append("=").append(this.encodeParam(paramValues[i])); + if (i < paramValues.length -1) { + buf.append(paramSeparator); + } + } if (index != params.size()) { buf.append(paramSeparator); index++; diff --git a/engine/src/main/java/com/agiletec/aps/system/services/url/PageURL.java b/engine/src/main/java/com/agiletec/aps/system/services/url/PageURL.java index ef8ed4b9d9..6adbcaec77 100644 --- a/engine/src/main/java/com/agiletec/aps/system/services/url/PageURL.java +++ b/engine/src/main/java/com/agiletec/aps/system/services/url/PageURL.java @@ -21,6 +21,7 @@ import java.util.List; import java.util.Map; import jakarta.servlet.http.HttpServletRequest; +import org.apache.commons.lang3.StringUtils; /** * Rappresenta un URL ad una pagina del sistema. Oggetti di questa classe @@ -141,7 +142,9 @@ public void setParamRepeat(List parametersToExclude) { if (null != paramsMap && !paramsMap.isEmpty()) { for(String key : paramsMap.keySet()) { if (null == parametersToExclude || !parametersToExclude.contains(key)) { - this.addParam(key, req.getParameter(key)); + String[] values = req.getParameterValues(key); + String fullString = StringUtils.join(values, PARAMETERS_SEAPARATOR); + this.addParam(key, fullString); } } } @@ -170,5 +173,6 @@ public void setBaseUrlMode(String baseUrlMode) { private Map params; private boolean escapeAmp = true; - + public static final String PARAMETERS_SEAPARATOR = "__ENTANDO_PARAM_SEP__"; + } diff --git a/engine/src/main/tld/aps-core.tld b/engine/src/main/tld/aps-core.tld index edfde32559..9c93da0ac7 100644 --- a/engine/src/main/tld/aps-core.tld +++ b/engine/src/main/tld/aps-core.tld @@ -694,7 +694,7 @@ Used only when paramRepeat="true".]]> excludeParameters no - false + true