bloggers bloggers

Marco Napolitano
Messaggi: 79
Stelle: 0
Data: 17/02/22
Jader Jed Francia
Messaggi: 63
Stelle: 0
Data: 18/02/21
Paolo Gambetti
Messaggi: 2
Stelle: 0
Data: 11/11/19
Katia Pazzi
Messaggi: 1
Stelle: 0
Data: 27/06/19
Ezio Lombardi
Messaggi: 11
Stelle: 0
Data: 10/04/18
Chiara Mambretti
Messaggi: 25
Stelle: 0
Data: 27/02/17
Serena Traversi
Messaggi: 3
Stelle: 0
Data: 21/07/16
Francesco Falanga
Messaggi: 8
Stelle: 0
Data: 14/06/16
Antonio Musarra
Messaggi: 2
Stelle: 0
Data: 18/11/13
Simone Celli Marchi
Messaggi: 6
Stelle: 0
Data: 09/07/13
Indietro

Liferay e refresh della portlet al salvataggio delle impostazioni

Nello sviluppo di una portlet custom potrebbe risultare necessario creare una pagina di configurazione in cui inserire vari parametri; le specifiche JSR prevedono una metodologia mentre Liferay ne prevede un'altra.

Non entro nel dettaglio di come creare una pagina di configurazione, ma sto facendo riferimento all'aggiunta dell'attributo <configuration-action-class> all'interno del file liferay-portlet.xml ed alla successiva implementazione della classe Java e della JSP.

Chi ha già provato questo sistema sa già che la pagina delle impostazioni della portlet viene visualizzata come popup modale; quello che voglio illustrare e come fare in modo che al submit della pagina di configurazione, oltre a salvare le impostazioni venga effettuato anche il refresh della portlet sottostante. In questo modo non è più necessario chiudere la popup modale e fare refresh a mano della pagina.

Come si procede? Molto semplice, basta aggiungere un apposito messaggio all'interno della classe SessionMessages.

PortletPreferences preferences = actionRequest.getPreferences();
String portletResource = ParamUtil.getString(actionRequest, "portletResource");
if (Validator.isNotNull(portletResource)) {
preferences = PortletPreferencesFactoryUtil
.getPortletSetup(actionRequest, portletResource);
}

[...ometto la parte di controllo dei valori inseriti in pagina...]

preferences.store();
SessionMessages.add(actionRequest,
portletConfig.getPortletName()
+ SessionMessages.KEY_SUFFIX_REFRESH_PORTLET,
portletResource);

La "magia" viene fatta dall'aggiunta del messaggio KEY_SUFFIX_REFRESH_PORTLET, al resto penserà Liferay.

Enjoy!

Precedente
Commenti
Nessun commento. Vuoi essere il primo.