uses and function of ListString in JSP

0

friends I have a view that currently through a query with two parameters shows me a result, the problem is that it shows me only one result in the table, I currently receive the parameters and I send the response using object map, in the following way

@RequestMapping("/ajax_consultaProducto")
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response,
                                  @RequestParam("buscarProductoInput") String codigoBarra,
                                  @RequestParam("comboboxSucursales") String sucursal,
                                  @RequestParam("IpCC") String ipControlador
) throws Exception {
    logger.info("LLamado a metodos consultaProducto y buscarEstatusProducto Parametros: " + em + ", " + codigoBarra + ", " + sucursal);
    int mensajeEnviar;
    codigoBarra = codigoBarra.replace(" ", "");
    IConsultaProductosRms consultaRms = new ConsultaProductosRms();
    Producto producto = null;
    Map<Integer, Object> mapRetorno = null;
    producto = consultaRms.consultaProducto(em, codigoBarra, sucursal);
    mensajeEnviar = consultaRms.buscarEstatusProducto(em, codigoBarra, sucursal);
    producto.setStatusProducto(Integer.toString(mensajeEnviar));
    mapRetorno = transformObjectToTreeMap(producto);
    logger.info("Producto devuelto transformado en map:  " + mapRetorno);
    return new ModelAndView("ajax_sucursales", "lista", mapRetorno);
}

but I do not know if because of this form it shows me only one record in the view, I was thinking about using List to see if it shows it in list form, something like this:

@RequestMapping("/tabla_consultaProductos")
    public ModelAndView consultaProductos(HttpServletRequest request, HttpServletResponse response,
                                                  @RequestParam("buscarProductoInput") String codigoBarra,
                                                  @RequestParam("comboboxSucursales") String sucursal,
                                                  @RequestParam("IpCC") String ipControlador
    ) throws Exception {
        logger.info("Antes de la ejecutar consultaProducto" + codigoBarra + ", " + sucursal + ", "
                + ipControlador);
        codigoBarra = codigoBarra.replace(" ", "");
        IConsultaProductosRms consultaRms = new ConsultaProductosRms();

        List<String> listaBarra = consultaRms.consultaProductos(em, codigoBarra, sucursal);

        logger.info("Despu\u00E9s de la ejecutar consultaProductoPromocion retorna: "+ listaBarra);
        return new ModelAndView("tabla_consultaProductos", "lista", listaBarra);
    }

Will that be how it works? I accept suggestions thanks

here I make the call to the method that performs the query

public interface IConsultaProductosRms {
    @Transactional
        public List<String> consultarProductosPromocionInactivos(EntityManager em, String codigoPromocion,String sucursal);

    public Producto consultaProducto(EntityManager em,String codigoBarra, String sucursal);

        public List<String> consultaProductos(EntityManager em,String codigoBarra, String sucursal);
    public Mensaje actualizaProductoSistemas(DriverManagerDataSource em, String codigoPrincipal, int numeroSucursal);
    public List<String> consultaBarrasSecundarias(EntityManager em, String codigoBarra,String sucursal);
    public List<String> consultaProductosPromocion(EntityManager em, String codigoPromocion,String sucursal);
        public int buscarEstatusProducto(EntityManager em, String codigoBarra, String sucursal);
}

this one in particular is the one I use

public Producto consultaProducto(EntityManager em,String codigoBarra, String sucursal);

here is the method consultProduct

public Producto consultaProducto(EntityManager em, String codigoBarra,
            String sucursal) {


/*Query original en actual funcionamiento
        String stringQuery = "SELECT * " + "FROM ( "
        + "SELECT tmp_barra_primaria.codigoPrincipal, "
        + "tmp_barra_primaria.descripcionCorta, "
        + "tmp_barra_primaria.descripcionLarga, " + "im.dept, "
        + "vi.vat_rate, " + "rfr2.selling_retail, "
        + "TO_CHAR(rpile.detail_start_date,'yyyymmdd'), " + "TO_CHAR(rpile.detail_end_date,'yyyymmdd'), "
        + "rpile.promo_comp_id, " + "rpile.promo_id, "
        + "DECODE(uil.uda_value, " + "'0', " + "'Normal', " + "'4', "
        + "'Pesable', " + "'7', " + "'Procesado') estado, "
        + "rfr2.simple_promo_retail,null,im.standard_uom,MFG_REC_RETAIL  " + "FROM item_master       im, "
        + "vat_item          vi, " + "store             s, "
        + "uda_item_lov      uil, " + "rpm_future_retail rfr2, " +

        "(SELECT decode(im.item_number_type, " + "'ITEM', "
        + "im.item, " + "im.item_parent) codigoPrincipal, "
        + "im.item_desc descripcionLarga, "
        + "im.short_desc descripcionCorta " + "FROM item_master im "
        + "WHERE im.item = ?1) tmp_barra_primaria " +

        "LEFT OUTER JOIN(item_loc il) "
        + "ON (tmp_barra_primaria.codigoPrincipal = il.item AND "
        + "il.loc = ?2) " +
        "LEFT OUTER JOIN(rpm_future_retail rfr) "
        + "ON (tmp_barra_primaria.codigoPrincipal = rfr.item AND "
        + "rfr.location = ?2 AND "
        + "TO_DATE(sysdate, 'DD/MM/YYYY') <= "
        + "TO_DATE(rfr.action_date, 'DD/MM/YYYY') AND "
        + "(to_date(sysdate) - to_date(rfr.action_date)) >= 0) "
        + "LEFT OUTER JOIN(rpm_promo_item_loc_expl rpile) "
        + "ON (tmp_barra_primaria.codigoPrincipal = rpile.item AND "
        + "rpile.location = ?2 AND "
        + "TO_DATE(sysdate, 'DD/MM/YYYY') between "
        + "TO_DATE(rpile.detail_start_date, 'DD/MM/YYYY') AND "
        + "to_date(rpile.detail_end_date, 'DD/MM/YYYY')) " +

        "WHERE im.item = tmp_barra_primaria.codigoPrincipal "
        + "AND vi.item = im.item " + "AND s.store = ?2 "
        + "AND s.vat_region = vi.vat_region "
        + "AND uil.item = im.item " + "AND uil.uda_id = 3 "
        + "AND rfr2.item = tmp_barra_primaria.codigoPrincipal "
        + "AND rfr2.location = ?2 " +

        "AND (to_date(SYSDATE) - to_date(rfr2.action_date)) >= 0 "
        + "   ORDER BY rfr2.action_date DESC ,vi.active_date DESC  " +

        ") tempo " + "WHERE ROWNUM = 1";*/

        String query2 = "SELECT   temp.codigoPrincipal,"
             +"temp.descripcionCorta,"
             +"temp.descripcionLarga,"
             +"im.dept,"
             +"vi.vat_rate,"
             +"rfr.selling_retail,"
             +"TO_CHAR (rpile.detail_start_date, 'DD/MM/YYYY'),"
             +"TO_CHAR (rpile.detail_end_date, 'DD/MM/YYYY'),"
             +"rpile.promo_comp_id,"
             +"rpile.promo_id,"
             +" DECODE (uil.uda_value,"
                +"     '0',"
                +"     'Normal',"
                +"     '4',"
                +"     'Pesable',"
                +"     '7',"
                +"     'Procesado')"
               +" estado,"
            +" rfr.simple_promo_retail,"
            +" NULL,"
            +" im.standard_uom,"
            +" im.MFG_REC_RETAIL,"
            +" s.store_name"
     +" FROM                        item_master im"
                            +"   JOIN"
                                 +" (SELECT   DECODE (im.item_number_type,"
                                               +"     'ITEM', im.item,"
                                                  +"  im.item_parent)"
                                             +"  codigoPrincipal,"
                                           +" im.item_desc descripcionLarga,"
                                          +"  im.short_desc descripcionCorta"
                                   +"  FROM   item_master im"
                                   +" WHERE   im.item = ?1) temp"
                             +"  ON (im.item = temp.codigoPrincipal)"
                           +" JOIN"
                            +"   uda_item_lov uil"
                           +" ON (im.item = uil.item AND uda_id = 3)"
                        +" LEFT JOIN"
                        +"   item_loc il"
                        +" ON (im.item = il.item)"
                      +" LEFT JOIN"
                      +"   rpm_future_retail rfr"
                      +" ON (rfr.item = il.item AND rfr.location = il.loc)"
                  +" LEFT JOIN"
                  +"    rpm_promo_item_loc_expl rpile"
                  +" ON (rfr.item = rpile.item AND rpile.location = rfr.location)"
                  +" AND TO_DATE (SYSDATE, 'DD/MM/YYYY') BETWEEN TO_DATE (rpile.detail_start_date,"
                  +" 'DD/MM/YYYY')AND  TO_DATE (rpile.detail_end_date,'DD/MM/YYYY')"
               +" JOIN"
                 +"  store s"
               +" ON (il.loc = s.store)"
            +" JOIN"
            +" vat_item vi"
            +" ON (im.item = vi.item AND s.vat_region = vi.vat_region)"
     +"WHERE       store = DECODE (?2, '0', s.store, ?2)"
             +"AND (TO_DATE (SYSDATE) - TO_DATE(rfr.action_date)) >= '0'"
             +"AND VI.VAT_TYPE IN ('R', 'B')"
             +"AND vi.active_date IN"
                    +"  (SELECT   MAX (active_date)"
                     +"    FROM   vat_item vi1"
                      +"  WHERE       vi.item = vi1.item"
                             +"   AND vi.vat_type = vi1.vat_type"
                              +"  AND vi1.create_date <= TRUNC (SYSDATE)"
                              +"  AND vi.vat_region = vi1.vat_region)";

        Producto productoRetornar = new Producto();
        List<Vector<Object>> objetos=new ArrayList();
        try
        {
        Query query = em.createNativeQuery(query2);
        query.setParameter(1, codigoBarra);
        query.setParameter(2, sucursal);
                //query.setParameter(3, sucursal);




         objetos = query.getResultList();
        }
        catch(Exception e)
        {
            productoRetornar.setMensaje("No se puede conectar"+e.getMessage());
        }
        for (Vector<Object> resultElement : objetos) {

            String codigoPrincipal = null;
            try {
                codigoPrincipal = resultElement.get(0).toString();
            } catch (Exception e) {

            }
            String descripcionCorta = null;
            try {
                descripcionCorta = resultElement.get(1).toString();
            } catch (Exception e) {

            }
            String descripcionLarga = null;
            try {
                descripcionLarga = resultElement.get(2).toString();
            } catch (Exception e) {

            }
            String departamento = null;
            try {
                departamento = resultElement.get(3).toString();
            } catch (Exception e) {

            }
            String iva = null;
            try {
                iva = resultElement.get(4).toString();
            } catch (Exception e) {

            }
            String precio = null;
            try {
                precio = resultElement.get(5).toString();
            } catch (Exception e) {

            }
            String fechaInicioPromocion = null;
            try {
                fechaInicioPromocion = resultElement.get(6).toString();
            } catch (Exception e) {

            }
            String fechaFinPromocion = null;
            try {
                fechaFinPromocion = resultElement.get(7).toString();
            } catch (Exception e) {

            }
            String codigoComponente = null;
            try {
                codigoComponente = resultElement.get(8).toString();
            } catch (Exception e) {

            }
            String codigoPromocion = null;
            try {
                codigoPromocion = resultElement.get(9).toString();
            } catch (Exception e) {

            }
            String estado = null;
            try {
                estado = resultElement.get(10).toString();
            } catch (Exception e) {

            }
            String precioPromocion = null;
            try {
                if(codigoPromocion!= null)
                    precioPromocion = resultElement.get(11).toString();
            } catch (Exception e) {

            }
            String frecuencia = null;
            try {
                frecuencia = resultElement.get(12).toString();
            } catch (Exception e) {

            }
            String uom = null;
            try {
                uom = resultElement.get(13).toString();
            } catch (Exception e) {

            }
            String pvJusto = null;
            try {
                pvJusto = resultElement.get(14).toString();
            } catch (Exception e) {

            }
                        String nombreSucursal = null;
            try {
                nombreSucursal = resultElement.get(14).toString();
            } catch (Exception e) {

            }

            if(!objetos.isEmpty())
            {
                productoRetornar.setCodigoPrincipal(codigoPrincipal);
                productoRetornar.setDescripcionCorta(descripcionCorta);
                productoRetornar.setDescripcionLarga(descripcionLarga);
                productoRetornar.setDepartamento(departamento);
                productoRetornar.setIva(iva);
                productoRetornar.setPrecio(precio); 
                productoRetornar.setFechaInicioPromocion(fechaInicioPromocion);
                productoRetornar.setFechaFinPromocion(fechaFinPromocion);
                productoRetornar.setCodigoComponente(codigoComponente);
                productoRetornar.setCodigoPromocion(codigoPromocion);
                productoRetornar.setEstado(estado);
                productoRetornar.setPrecioPromocion(precioPromocion);
                productoRetornar.setFrecuencia(frecuencia);
                productoRetornar.setUom(uom);
                productoRetornar.setMensaje("");
                productoRetornar.setPvJusto(pvJusto);
                                productoRetornar.setNombreSucursal(nombreSucursal);
            }
        }

        return productoRetornar;
    }

and here is the view where I call ajax_consultaProduct

.post(
                        'ConsultasRms/ajax_consultaProducto.html',
                        formulario.serialize(),
                        function (data) {
                            $("#loading").hide();

                            //borramos el contenido de los option del select
                            //$("#comboboxSucursales").html("");
                            //recorremos todas las filas del resultado del proceso que obtenemos en Json


                            if (data.lista[1].codigoPrincipal == null) {
                                $("#dialog-NoData").dialog("open");
                            }


                            else if (data.lista[1].statusProducto == "1") {
                                $("#dialog-Inactivo").dialog("open");
                            }


                            else {
                                comboSucursales = document
                                        .getElementById('comboboxSucursales');
                                sucursalConsulta = comboSucursales.options[comboSucursales.selectedIndex].text;
                                if (data.lista[1].mensaje == "") {
                                    var datarow = {
                                        sucursal: sucursalConsulta,
                                        numeroSucursal: comboSucursales.options[comboSucursales.selectedIndex].value,
                                        ip: ipControlador,
                                        sistema: tipoSucursal,
                                        codigoPrincipal: data.lista[1].codigoPrincipal,
                                        descripcionCorta: data.lista[1].descripcionCorta,
                                        precio: data.lista[1].precio,
                                        precioPromocion: data.lista[1].precioPromocion,
                                        pvJusto: data.lista[1].pvJusto,
                                        nombreSucursal: data.lista[1].nombreSucursal
                                    };
                                    datarowRmsDetalle[cont] = {
                                        descripcionLarga: data.lista[1].descripcionLarga,
                                        iva: data.lista[1].iva,
                                        estado: data.lista[1].estado,
                                        departamento: data.lista[1].departamento,
                                        codigoComponente: data.lista[1].codigoComponente,
                                        codigoPromocion: data.lista[1].codigoPromocion,
                                        fechaInicioPromocion: data.lista[1].fechaInicioPromocion,
                                        fechaFinPromocion: data.lista[1].fechaFinPromocion
                                    };
                                }
                                else {
                                    $("#etiquetaMensajeAlerta").html("No es posible establecer una conexión con el servidor.");
                                    $("#dialog-Alerta").dialog("open");
                                }
                                //height : 190,
                                //width : 865,

                                var su = jQuery("#tablaProductoRms")
                                        .jqGrid('addRowData', cont, datarow);

                                //var sub=jQuery("#tablaProducto_1_t").jqGrid('addRowData','newRow',datarow2);
                                cont++;
                            }
                        }, "json");


            }

those are the functions

    
asked by Jdeveloper 23.11.2016 в 14:21
source

1 answer

1

Make sure that in the Controller if you are bringing more than one result. I suggest you put the code of the jsp to see how you are implementing it, because maybe it is the iteration that you are doing the jsp (I do not know if you are using scriptles or jstl) and it is probably neither the Map nor the List.

    
answered by 24.11.2016 в 23:10