Foros del Web » Programación para mayores de 30 ;) » Java »

Implementar jquery en sistema con struts

Estas en el tema de Implementar jquery en sistema con struts en el foro de Java en Foros del Web. Hola gente como estan, tengo una consulta, trabajo en una empresa, y realizamos un sistema para una fabrica, todo anda bien pero hay un problema ...
  #1 (permalink)  
Antiguo 12/04/2012, 07:23
 
Fecha de Ingreso: marzo-2009
Mensajes: 31
Antigüedad: 15 años, 1 mes
Puntos: 0
Implementar jquery en sistema con struts

Hola gente como estan, tengo una consulta, trabajo en una empresa, y realizamos un sistema para una fabrica, todo anda bien pero hay un problema con las ñ a la hora de cargar unos combos anidados de primra cargo bien los datos del primer combo con el action, pero el tema es mostrar los datos del combo anidado primero lo hacia asi.

Código Java:
Ver original
  1. function clearElements(combo){  
  2.       combo.options.length = 0;  
  3.       nuevaOpcion = new Option("", "");        
  4.       combo.options[0] = nuevaOpcion;
  5.       i = 0;
  6.       var insumo = document.forms[0].insumo.options[document.forms[0].insumo.selectedIndex].value;
  7.       if(insumo != '')
  8.          opcionSeleccionar = new Option('Cargando...', '');
  9.       else
  10.          opcionSeleccionar = new Option('Seleccionar', '');      
  11.       combo.options[i] = opcionSeleccionar;
  12. }
  13. function reloadProveedores()    {      
  14.        clearElements(document.forms[0].proveedor);
  15.        var id = document.forms[0].insumo.value;
  16.        new Ajax.Request('<html:rewrite page="/reloadProveedor.do"/>', {
  17.           parameters: {insumoId: id},
  18.           onComplete: function(transport, json) {                
  19.             if(json.executeError){
  20.                 alert(json.executeError);
  21.             }
  22.             i = 0;  
  23.             while (i < json.length){
  24.                 var property = json[i].insumoProveedorId;
  25.                 var nom = json[i].nombreProveedor;
  26.                 nom = nom.replace(/&Ntilde;/g, 'Ñ');
  27.                 propertyLabel = nom;
  28.                 //9999: es usado para guardar la denominación de la unidad
  29.                 if(property != '9999'){
  30.                     nuevaOpcion = new Option(propertyLabel, property);        
  31.                     document.forms[0].proveedor.options[i] = nuevaOpcion;
  32.                 }else{
  33.                     document.forms[0].unidad.value = propertyLabel;
  34.                 }                      
  35.                 i++;
  36.             }          
  37.             //pregunto si es igual a 1 porque siempre va a venir almenos la unidad
  38.             if(json.length == 1){
  39.                 opcionSeleccionar = new Option('Seleccionar', '');
  40.                 document.forms[0].proveedor.options[0] = opcionSeleccionar;        
  41.             }    
  42.           }
  43.        }); 
  44. }

y el action que carga el segundo combo
Código Java:
Ver original
  1. @Override
  2.     public ActionForward execute(ActionMapping mapping, ActionForm form,
  3.             HttpServletRequest request, HttpServletResponse response) throws Exception {
  4.  
  5.        
  6.         String insumoId = request.getParameter("insumoId");
  7.         logger.debug("insumoId para ajax: " + insumoId);
  8.         reloadProveedor(request, response, insumoId);
  9.  
  10.         List<Insumo> listaInsumos = getServicioMaster().getInsumoDao().findAllEnableds();
  11.        
  12.         request.setAttribute("insumos", listaInsumos);
  13.         List<UbicacionInsumo> listUbicaciones = getServicioMaster().getUbicacionInsumoDao().findAll();
  14.         request.setAttribute("ubicaciones", listUbicaciones);
  15.        
  16.        
  17.         return mapping.findForward(FORWARD_INIT);
  18.        
  19.     }
  20.  
  21.    
  22.     public void reloadProveedor(HttpServletRequest request,
  23.             HttpServletResponse response, String insumoId)
  24.             throws Exception
  25.         {
  26.  
  27.             if (insumoId != null && StringUtils.isNotEmpty(insumoId)) {
  28.                 Insumo insumo = (Insumo) getServicioMaster().getInsumoDao().findInsumo(Integer.parseInt(insumoId));
  29.                
  30.                 List<ProveedorInsumo> objects = getServicioMaster().getProveedorInsumoDao().findProveedoresInsumo(Integer.parseInt(insumoId));
  31.                 request.setAttribute("proveedores", objects);
  32.                 logger.debug("Cantidad de proveedores: "+objects.size());
  33.                 JSONArray json = new JSONArray();
  34.                 for(ProveedorInsumo proveedorInsumo: objects){
  35.                     JSONObject jsonObject = new JSONObject();                  
  36.                     jsonObject.put("insumoProveedorId", proveedorInsumo.getProveedorInsumoId());
  37.                     jsonObject.put("nombreProveedor", cambio(proveedorInsumo.getProveedor().getNombre()));                 
  38.                     json.add(jsonObject);
  39.                 }
  40.                
  41.                 //Agrego un objeto mas para llevar la denominación de la unidad a la vista
  42.                 JSONObject jsonObject = new JSONObject();
  43.                 jsonObject.put("insumoProveedorId", "9999");
  44.                 jsonObject.put("nombreProveedor", insumo.getUnidad().getDenominacion());
  45.                 json.add(jsonObject);
  46.                
  47.  
  48.                 response.setHeader("X-JSON", json.toString());
  49.             }
  50.         }  
  51.     private String cambio(String nomenclatura){
  52.         String nom = nomenclatura;
  53.         String search = "Ñ";
  54.         String sub = "&Ntilde;";
  55.         String result = "";
  56.         int i;
  57.         do {
  58.             i = nom.indexOf(search);
  59.             if (i != -1) {
  60.                 result = nom.substring(0,i);
  61.                 result = result + sub;
  62.                 result = result +nom.substring(i + search.length());
  63.                 nom = result;
  64.             }
  65.            
  66.         } while (i != -1);
  67.         return nom;
  68.     }

le agregue una modificacion el cual buscaba en cada objeto si tenia una Ñ o ñ y lo remplazaba por "&Ntilde;" y al reves en el javascript de la jsp cambiaba "&Ntilde;" por Ñ o ñ.
  #2 (permalink)  
Antiguo 12/04/2012, 07:25
 
Fecha de Ingreso: marzo-2009
Mensajes: 31
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Implementar jquery en sistema con struts

He intentado hacer lo siguiente para poder cargar el segundo combobox con jquery pero no llego a hacerlo

Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.     $('#insumos').change(function(){
  3.         $.ajax({
  4.             type: "POST",
  5.             url: 'reloadProveedor.do',
  6.             data: { insumoId: insumoId },
  7.             success: function(respuesta){
  8.                 alert('AJAX');
  9.             }
  10.         });
  11.     });
  12. });
  13. function reloadProveedores(){  
  14.     alert("en el reload");
  15.         $.ajax({
  16.             type: "POST",
  17.             url: 'reloadProveedor.do',
  18.             data: { insumoId: insumoId },
  19.             success: function(respuesta){
  20.                 alert('AJAX');
  21.             }
  22.         });  
  23. }

parte del codigo donde estan los combos

Código HTML:
Ver original
  1. <tr>
  2.             <td width="50"><bean:message key="ingresoStock.insumo" /></td>
  3.             <td width="50">
  4.                 <html:select property="insumo" styleClass="textoInput" onchange="javascript:reloadProveedores();">
  5.                     <html:option value=""><bean:message key="general.text.seleccionar"/></html:option>
  6.                     <html:optionsCollection name="insumos" value="insumoId" label="descripcion" />
  7.                 </html:select>
  8.                 <span class="requiredFields">*</span>
  9.             </td>
  10.         </tr>
  11.         <tr>
  12.             <td width="50"><bean:message key="ingresoStock.proveedor" /></td>
  13.             <td width="50"><html:select property="proveedor" styleClass="textoInput">
  14.                 <html:option value=""><bean:message key="general.text.seleccionar"/></html:option>
  15.                 <html:optionsCollection name="proveedores" value="proveedorInsumoId" label="proveedor.nombre" />
  16.                 </html:select><span class="requiredFields">*</span>
  17.             </td>
  18.         </tr>

Etiquetas: implementar, jquery, jsp, sistema, string, struts
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:39.