Ejemplo n.º 1
0
  /**
   * Merge the parameters from the saved query parameter string (if any), and the parameters already
   * present on this request (if any), such that the parameter values from the query string show up
   * first if there are duplicate parameter names.
   */
  private void mergeParameters() {

    if ((queryParamString == null) || (queryParamString.length() < 1)) return;

    HashMap queryParameters = new HashMap();
    String encoding = getCharacterEncoding();
    if (encoding == null) encoding = "ISO-8859-1";
    try {
      RequestUtil.parseParameters(queryParameters, queryParamString, encoding);
    } catch (Exception e) {;
    }
    Iterator keys = parameters.keySet().iterator();
    while (keys.hasNext()) {
      String key = (String) keys.next();
      Object value = queryParameters.get(key);
      if (value == null) {
        queryParameters.put(key, parameters.get(key));
        continue;
      }
      queryParameters.put(key, mergeValues(value, parameters.get(key)));
    }
    parameters = queryParameters;
  }