Quiero pasar crear un grid con Struts 2 a partir de los datos obtenidos en la clase Action. El problema que tengo es que en vez de mostrarse el grid en pantalla, saca el contenido del objeto JSON; exactamente: {"liszonas":[{"idZona":4,"nombre":"Almacén 1"},{"idZona":5,"nombre":"Almacén 2"},{"idZona":3,"nombre":"Almacén de cartonaje"}]}
Os pongo el código, a ver si me podéis dar algún consejo:
Método execute del Action
Código Java:
Ver original
// La variable 'lista' tiene el valor // try { // Guardar los datos en el objeto JSON JSONObject json = new JSONObject(); json.put("liszonas", lista); return (SUCCESS); } return(ERROR); } }
También dentro del Action existe:
Código Java:
Ver original
return inputStream; }
Código del struts.xml:
Código XML:
Ver original
<action name="FiltroUbicaciones" class="laquesea" method="execute"> <result name="success" type="stream"> <param name="contentType">text/plain</param> <param name="inputName">inputStream</param> </result> <result name="error">/error.jsp</result> </action>
El jsp solo tiene los includes y:
Código HTML:
Ver original
Y para finalizar el archivo js, incluido en el jsp y encargado de crear el grid:
Código js:
Ver original
Ext.onReady(function(){ Ext.QuickTips.init(); Ext.form.Field.prototype.msgTarget = 'side'; var jsonReader = new Ext.data.JsonReader( { root : 'liszonas', totalProperty : 'totalCount' → No lo tengo definido en ningún sitio! }, [ { name: 'idZona' }, { name: 'nombre' }]); var ds = new Ext.data.Store({ root : 'liszonas', totalProperty:'totalCount', proxy: new Ext.data.HttpProxy({ url:'FiltroUbicaciones.action' }), reader: jsonReader }); var grid = new Ext.grid.GridPanel({ el:'grid', ds:ds, width:595, height:150, title:'Professors', store: ds, trackMouseOver:false, disableSelection:true, loadMask: true, columns:[{ header: "ID ZONA", dataIndex: 'idZona', width: 80, sortable: true },{ header: "Nombre", dataIndex: 'nombre', width: 420, sortable: true }], }); grid.render('grid-example'); }); });
No sé qué estoy haciendo mal!!! Algún consejo?
Muchas gracias!