code: protected void buildGetParam(StringBuilder sb, UrlChain chain) {
          List<Object> getParamList = extractGetParamList(chain);
          int index = 0;
          for (Object param : getParamList) {
              if (index == 0) { // first loop
                  sb.append("?");
              } else {
                  if (index % 2 == 0) {
                      sb.append("&");
                  } else if (index % 2 == 1) {
                      sb.append("=");
                  } else { // no way
                      String msg = "no way: currentSb=" + sb + " get-params=" + getParamList;
                      throw new IllegalStateException(msg);
                  }
              }
              sb.append(param != null ? param : "");
              ++index;
          }
      }
docs: -------------