Fórum

Cambiar un action en un form dentro de un portlet

Jordi FM, modificado 10 Anos atrás.

Cambiar un action en un form dentro de un portlet

New Member Postagens: 2 Data de Entrada: 22/08/13 Postagens Recentes
Buenas, tengo un problema con la url del portlet cuando hago un submit de un formulario. Necesito cambiar el action pero sin modificar la url tipo portlet.

Utilizo Liferay, struts, y jsp. Os explico...

Tengo un formulario con dos botones:

<html:form method="post" action="AAA" styleId="specific_form" enctype="multipart/form-data">

<span id="buttonA"> <html:link href="#">Save</html:link> </span>
<span id="buttonB"> <html:link href="#">Delete</html:link> </span>

</html:form>


Y en la parte javascript, redefino los clicks de cada botón para que cambie el action y haga el submit del form.

jquery("#buttonA").click(function(){
jquery("#specific_form").attr('action', "saveDocument");
jquery("#specific_form").submit();
});

jquery("#buttonB").click(function(){
jquery("#specific_form").attr('action', "deleteDocument");
jquery("#specific_form").submit();
});


Dependiendo del botón que utilice el usuario, llamaré a un action de struts o a otro.

El problema es... La url del portlet tiene este aspecto:

http://localhost:8081/group/123456789/42?p_p_id=myPortlet_WAR_PortletArchive&p_p_action=0&p_p_state=normal&p_p_mode=view&p_p_col_id=column-1&p_p_col_pos=0&p_p_col_count=1&_myPortlet_WAR_PortletArchive__spage=%2Faction%2FarchiveList

Pero tras cambiar el action, la url pasa a ser ésta:

http://localhost:8081/group/123456789/myPortlet/saveDocument

He perdido todos los parámetros del portlet, como el p_p_id, spage, p_p_action, etc, y el contexto del mismo.

Necesitaría poder cambiar correctamente el action, pero sin alterar el formato de url del portlet. ¿Me podría decir alguien cómo debería hacerlo?

Muchas gracias!
thumbnail
Sergio Romero Zayas, modificado 10 Anos atrás.

RE: Cambiar un action en un form dentro de un portlet

Regular Member Postagens: 151 Data de Entrada: 14/04/08 Postagens Recentes
aunque un poco tarde mi respuesta,...

pero creo que el problema lo tienes, en el uso de la etiqueta <html:forms> deberías usar o aui o forms normal, pero no esta. Cambia la etiqueta del form y usa la de aui, puedes guiarte de cualquier formulario de cualquier portlet de Liferay, mira en tu bundle ROOT/html/portlet/<nombreportlet>/*.jsp.