Get it on Google Play
31-01-2018
 

Formación Liferay Online: Desarrollo de portlets I

Formación Liferay online

Formación Liferay online

No os dejéis deslumbrar por el título del post, no tengo ningún curso de desarrollo sobre la plataforma Liferay online. De momento toda mi formación es en modalidad presencial y para empresas. Este es el primer vídeo, y por ahora el único, dedicado al desarrollo de portlets.

El objetivo de este post es compartir el vídeo a través del blog y compartir también el código fuente del ejemplo. Así que aquí tenéis el vídeo:

El código de la classe controladora que se ve en el vídeo es el siguiente:

@Component(
	immediate = true,
	property = {
		"com.liferay.portlet.display-category=Lostsys",
		"com.liferay.portlet.instanceable=true",
		"javax.portlet.display-name=Portlet1 Portlet",
		"javax.portlet.init-param.template-path=/",
		"javax.portlet.init-param.view-template=/view.jsp",
		"javax.portlet.name=" + Portlet1PortletKeys.Portlet1,
		"javax.portlet.resource-bundle=content.Language",
		"javax.portlet.security-role-ref=power-user,user"
	},
	service = Portlet.class
)
public class Portlet1Portlet extends MVCPortlet {
	
	@Override
	public void render(RenderRequest renderRequest, RenderResponse renderResponse) throws IOException, PortletException {
		String jspPage=ParamUtil.getString(renderRequest, "jspPage", "");
		
		if ( jspPage.equals("/lista.jsp") ) {
			Vector<Hashtable<String,String>> facturas=new Vector<Hashtable<String,String>>();
			
			Hashtable<String,String> r1=new Hashtable<String,String>();
			r1.put("num", "2018/01");
			r1.put("cliente", "IBM");
			r1.put("importe", "18.000");
			facturas.add(r1);

			r1=new Hashtable<String,String>();
			r1.put("num", "2018/02");
			r1.put("cliente", "Google");
			r1.put("importe", "28.000");
			facturas.add(r1);

			r1=new Hashtable<String,String>();
			r1.put("num", "2018/03");
			r1.put("cliente", "Netflix");
			r1.put("importe", "12.000");
			facturas.add(r1);
			
			renderRequest.setAttribute("facturas", facturas);
			}
		
		super.render(renderRequest, renderResponse);
		}
}

También el código de la vista JSP(Solo la del listado) queda de la manera siguente:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>

<%@ taglib uri="http://liferay.com/tld/aui" prefix="aui" %><%@
taglib uri="http://liferay.com/tld/portlet" prefix="liferay-portlet" %><%@
taglib uri="http://liferay.com/tld/theme" prefix="liferay-theme" %><%@
taglib uri="http://liferay.com/tld/ui" prefix="liferay-ui" %>

<liferay-theme:defineObjects />

<portlet:defineObjects />

<h1>Lista Facturas</h1>

<p>
	<a href='<portlet:renderURL />'>Volver</a>
</p>

<table>
	<tr>
		<th>Num.</th>
		<th>Cliente</th>
		<th>Importe</th>
	</tr>
	
	<c:forEach var='f' items='${facturas}'>
		<tr>
			<td>${f.num}</td>
			<td>${f.cliente}</td>
			<td>${f.importe}</td>
		</tr>
	</c:forEach>
</table>

Finalmente, el código JSP que se utiliza para crear una petición de renderizado donde se le pasa como parámetro el fichero JSP que se debe renderizar. Recordad que en los portlets desarrollados utilizando el framework de Liferay PortletMVC, el fichero JSP a renderizar se le pasa como parámetro a la classe controladora a través del parámetro ‘jspPage’.

<portlet:renderURL var='lista'>
	<portlet:param name='jspPage' value='/lista.jsp' />
</portlet:renderURL>

Creo que no me dejo nada, recordad que si llegamos a los objetivos descritos al final del vídeo terminaré la serie de vídeos dedicada al desarrollo de portlets.

Si te ha servido, por favor comparte

Interesado en formación Liferay?

 

Leave a Reply