Foren

¿Como obtener un DLFileEntry desde una plantilla de velocity?

thumbnail
Luis Rodríguez Fernández, geändert vor 14 Jahren.

¿Como obtener un DLFileEntry desde una plantilla de velocity?

Junior Member Beiträge: 86 Beitrittsdatum: 26.06.09 Neueste Beiträge
¡Buenas tardes a todos!

Estamos constryuendo una típica sección de "Noticias" para nuestro portal. Para el detalle de cada una de ellas emplemos una plantilla con un script de velocity. El problema nos viene cuando queremos acceder a los documentos (de tipo "Biblioteca de documentos") desde este script. El servicio al que accedo es el "com.liferay.portlet.documentlibrary.service.persistence.DLFileEntryUtil":

#set($dlFileEntryUtil = $serviceLocator.findExceptionSafeService('com.liferay.portlet.documentlibrary.service.persistence.DLFileEntryUtil'))

Parece que el servicio lo encontramos, pero cuando intentamos invocar a un método de ese servicio no obtenemos respuesta:

#set($fileEntry = $dlFileEntry.getFileEntryByUuidAndGroupId($fileEntryUuid,$fileEntryGroupId))

¿Alguna idea?

Gracias y un saludo,

Luis

--
"Los caminos del usuario son inescrutables…"

-- Rick Cook
thumbnail
francesco scamarcio, geändert vor 14 Jahren.

RE: ¿Como obtener un DLFileEntry desde una plantilla de velocity?

Regular Member Beiträge: 104 Beitrittsdatum: 17.08.09 Neueste Beiträge
porque no pruebas a invokar directamente el servicio(una capa mas arriba ) alli tienes todos los metodos disponibles
thumbnail
Julio Camarero, geändert vor 14 Jahren.

RE: ¿Como obtener un DLFileEntry desde una plantilla de velocity?

Liferay Legend Beiträge: 1668 Beitrittsdatum: 15.07.08 Neueste Beiträge
Hola Luis,

te recomiendo utilizar el servicio también, como indica Francesco, es decir, DLFileEntryServiceUtil.

Aún así, en el ejemplo que has puesto, igual tenga algo que ver que declaras esta variable: $dlFileEntryUtil y luego la invocas con otro nombre: $dlFileEntry

un saludo!

Julio Camarero
Liferay España
thumbnail
Albert Coronado Calzada, geändert vor 10 Jahren.

RE: ¿Como obtener un DLFileEntry desde una plantilla de velocity?

Junior Member Beiträge: 38 Beitrittsdatum: 10.02.09 Neueste Beiträge
Hola,

Seguramente ya da igual, pero yo me he encontrado este post hoy, me ha ido bien y para los siguientes. Para tener acceso al DLFileEntry a partir de una plantilla:

// Inicializamos las classes
#set ( $dlFileEntryUtil = $portal.getClass().forName('com.liferay.portlet.documentlibrary.service.DLFileEntryLocalServiceUtil') )
#set ( $integer= $portal.getClass().forName('java.lang.Integer') )

// Para acceder a los DLFile entry lo haremos a partir de la URL que nos devuelve la estructura, cuidado que hay que convertir parámetros

#set( $fileEntry = $dlFileEntryUtil.getDLFileEntryByUuidAndGroupId($doc.getData().split('/').get(5),$integer.parseInt( $doc.getData().split('/').get(2) )) )

Básicamente usamos el método 'getDLFileEntryByUuidAndGroupId' de la classe 'DLFileEntryLocalServiceUtil' obteniendo el Uuid y el GroupId de la URL.

Espero que sea de utilidad.

Saludos,