示例#1
0
  private QuerySearchAvanced saveSearchConditions(HttpSession session, HttpServletRequest request) {

    String listOrder = RequestUtils.parseRequestParameterAsStringWithEmpty(request, "99999");

    if (StringUtils.isEmpty(listOrder)) {
      listOrder = XML_FLD_UPPER_TEXT + 1;
    }

    int contRegistros = Integer.parseInt(request.getParameter("contadorreg"));

    QuerySearchAvanced querySearchAvanced = new QuerySearchAvanced();
    FieldSearchAvanced[] fieldSearchAvanced = new FieldSearchAvanced[contRegistros];
    int[] idoperator = new int[contRegistros];
    String[] valueWhere = new String[contRegistros];
    String[] nexo = new String[contRegistros];
    boolean[] hasInvalidValue = new boolean[contRegistros];

    Map nameCampos = (Map) session.getAttribute("camposconsulta");

    for (int i = 0; i < contRegistros; i++) {
      FieldSearchAvanced field =
          (FieldSearchAvanced) nameCampos.get(request.getParameter("oSelectCampo_" + i));

      if (field != null) {

        field.setRowId(i);
        fieldSearchAvanced[i] = field;

        try {
          idoperator[i] = Integer.parseInt(request.getParameter("oSelectOperador_" + i));
        } catch (NumberFormatException e) {
          // idoperator[i] = 0;
        }

        valueWhere[i] = request.getParameter("where_" + i);

        hasInvalidValue[i] = false;
      }
      nexo[i] = request.getParameter("nexo_" + i);
    }

    querySearchAvanced.setFieldSearchAvanced(fieldSearchAvanced);
    querySearchAvanced.setIdOperator(idoperator);
    querySearchAvanced.setValueWhere(valueWhere);
    querySearchAvanced.setNexo(nexo);
    querySearchAvanced.setHasInvalidValue(hasInvalidValue);
    querySearchAvanced.setOrder(listOrder);

    session.setAttribute("contRegistros", new Integer(contRegistros));
    session.setAttribute("valoresConsulta", querySearchAvanced);

    return querySearchAvanced;
  }