Ask Questions and Find Answers
Important:
Ask is now read-only. You can review any existing questions and answers, but not add anything new.
But - don't panic! While ask is no more, we've replaced it with discuss - the new Liferay Discussion Forum! Read more here here or just visit the site here:
discuss.liferay.com
Uso de Javascript files en entorno EXT
Hola,
estoy desarrollando portlets en liferay utilizando el entorno EXT. He utilizado el service builder para mis clases de persistencia, hasta ahí todo bien, pero cuando quiero llenar combos boxes, la función de java script Liferay.DynamicSelect no me trae la data. Algo estoy haciendo mal, quizá alguno haya tenido un problema similar.
Revisando el wiki, encontré que para poder utilizar java script files externas, hay que declararlas en el portal-ext.properties, pero yo estoy usando la version 5.1.1 de Liferay y las indicaciones sólo llegan a la versión 4.3. También he intentado colocar la declaración de mi función de java script en el archivo service_unpacked.js (ext-web/tmp/html/js/liferay) pero no obtengo resultado.
Este pedazo de código lo tengo en el jsp de mi portlet:
new Liferay.DynamicSelect(
[
{
select: '<portlet:namespace /><%= displayTerms.ESTADO_ID %>',
selectId: 'estadoId',
selectDesc: 'nombreEstado',
selectVal: '<%= displayTerms.getEstadoTrabajoId() %>',
selectData: function(callback) {
Eops.Service.Portal.EstadoTrabajo.getEstadosTrabajo(
callback
);
}
},
]
);
Si alguien ha trabajado con algo parecido, apreciaría muchísimo que me pueda dar alguna sugerencia.
GRACIAS
Bryan Alvaro
Lima - Perú
estoy desarrollando portlets en liferay utilizando el entorno EXT. He utilizado el service builder para mis clases de persistencia, hasta ahí todo bien, pero cuando quiero llenar combos boxes, la función de java script Liferay.DynamicSelect no me trae la data. Algo estoy haciendo mal, quizá alguno haya tenido un problema similar.
Revisando el wiki, encontré que para poder utilizar java script files externas, hay que declararlas en el portal-ext.properties, pero yo estoy usando la version 5.1.1 de Liferay y las indicaciones sólo llegan a la versión 4.3. También he intentado colocar la declaración de mi función de java script en el archivo service_unpacked.js (ext-web/tmp/html/js/liferay) pero no obtengo resultado.
Este pedazo de código lo tengo en el jsp de mi portlet:
new Liferay.DynamicSelect(
[
{
select: '<portlet:namespace /><%= displayTerms.ESTADO_ID %>',
selectId: 'estadoId',
selectDesc: 'nombreEstado',
selectVal: '<%= displayTerms.getEstadoTrabajoId() %>',
selectData: function(callback) {
Eops.Service.Portal.EstadoTrabajo.getEstadosTrabajo(
callback
);
}
},
]
);
Si alguien ha trabajado con algo parecido, apreciaría muchísimo que me pueda dar alguna sugerencia.
GRACIAS
Bryan Alvaro
Lima - Perú
Como no recibí respuesta alguna que me pueda ayudar, encontré la solución por mi cuenta.
El problema de mi llamado a la función JSONService estaba en el paso de parámetros como se ve a continuación:
new Liferay.DynamicSelect([
{ select: '<portlet:namespace /><%= displayTerms.ESTADO_ID %>',
selectId: 'estadoId',
selectDesc: 'nombreEstado',
selectVal: '<%= displayTerms.getEstadoTrabajoId() %>',
selectData: function(callback) { Eops.Service.Portal.EstadoTrabajo.getEstadosTrabajo({},callback);}
},
]);
La función function(callback) invoca a la función generada por el Service Builder en ext_service_unpacked.js (cuya declaración debe agregarse en liferay-portlet-ext.xml dentro del tag <header-portlet-javascript>) pero si no se pasa la lista de parámetros la clase JSONServiceAction va a interpretarla de mala forma, por ello SIEMPRE se debe poner el argumento {} así no se este pasando ningún parámetro como en este caso.
Si a alguien le ocurrió o le ocurre esto en algun momento, revisen bien su paso de parámetros, quizá ahí el problema.
Saludos
El problema de mi llamado a la función JSONService estaba en el paso de parámetros como se ve a continuación:
new Liferay.DynamicSelect([
{ select: '<portlet:namespace /><%= displayTerms.ESTADO_ID %>',
selectId: 'estadoId',
selectDesc: 'nombreEstado',
selectVal: '<%= displayTerms.getEstadoTrabajoId() %>',
selectData: function(callback) { Eops.Service.Portal.EstadoTrabajo.getEstadosTrabajo({},callback);}
},
]);
La función function(callback) invoca a la función generada por el Service Builder en ext_service_unpacked.js (cuya declaración debe agregarse en liferay-portlet-ext.xml dentro del tag <header-portlet-javascript>) pero si no se pasa la lista de parámetros la clase JSONServiceAction va a interpretarla de mala forma, por ello SIEMPRE se debe poner el argumento {} así no se este pasando ningún parámetro como en este caso.
Si a alguien le ocurrió o le ocurre esto en algun momento, revisen bien su paso de parámetros, quizá ahí el problema.
Saludos