Get it on Google Play
16-02-2018
 

Formación Liferay online II: Peticiones de tipo acción

Formación Liferay online II

Formación Liferay online II

Continuamos con la serie de vídeos dedicados al desarrollo de portlets en Liferay(Si! Ya se que dije que solo lo haría si llegábamos a unos objetivos, pero es que tampoco vamos tan mal). Podéis consultar el primer artículo en el siguiente enlace “Formación Liferay Online: Desarrollo de portlets I“.

En el segundo vídeo de esta trilogía nos centraremos en las peticiones de tipo ‘Action’. Los portlets tienen su ciclo de vida dividido en dos partes, la primera fase es la de renderizado(render) que es la que estuvimos usando la semana pasada para crear la navegación del portlet. La segunda fase es la fase de acción(action).

Las peticiones que llaman a la fase de acción ejecutan una acción antes del renderizado y permiten tener el código un poco mas ordenado porque puedes tener un método por cada acción. Este tipo de peticiones también nos protegen de ataques CSRF, por ejemplo. Como veis, es muy útil.

Entender los distintos tipos de peticiones y su funcionamiento es vital para ser un buen desarrollador de portlet. Aquí os dejo el vídeo:

Aquí os dejo el código fuente del método de acción de la classe controladora:

public void altaFactura(ActionRequest actionRequest, ActionResponse actionResponse) throws IOException, PortletException {
	String num=ParamUtil.getString(actionRequest, "num", "");
	String cliente=ParamUtil.getString(actionRequest, "cliente", "");
	String importe=ParamUtil.getString(actionRequest, "importe", "");
		
	Hashtable<String,String> reg=new Hashtable<String,String>();
	reg.put("num", num);
	reg.put("cliente", cliente);
	reg.put("importe", importe);
		
	facturas.add(reg);
	}

También os dejo el código de la vista donde se genera la petición de tipo ‘ActionURL’ y el formulario:

<%@ 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>Alta de facturas</h1>

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

<portlet:actionURL name="altaFactura" var="altaFacturaURL" />

<form method="post" action="${altaFacturaURL}">
	<div>
		Num.: <input type='text' name="<portlet:namespace />num" />
	</div>
	<div>
		Cliente: <input type='text' name="<portlet:namespace />cliente" />
	</div>
	<div>
		Importe: <input type='text' name="<portlet:namespace />importe" />
	</div>
	<div>
		<input type="submit" value="Enviar" />
	</div>	
</form>

Deseando de todo corazón que os sea útil ya sabéis: ‘Like’, ‘Comentar’ y ‘Compartir’ que es la mejor manera de que esto llegue a cuanta mas gente mejor. Buen fin de semana.

Si te ha servido, por favor comparte

Interesado en formación Liferay?

 

Leave a Reply