Capita spesso di dover gestire la configurazione di una portlet e con Liferay è un'operazione piuttosto semplice: nel caso più semplice, basta modificare un paio di XML e costruire la propria pagina JSP di configurazione.
In alcuni casi però parte della configurazione (o tutta) è obbligatoria e va fatta prima di poter utilizzare la portlet; come fare quindi in questi casi per obbligare l'utente a configurare la portlet?
Innanzitutto diciamo che dovreste trovarvi ad avere i seguenti file:
init.jsp
, pagina che recupera (e controlla) tutte le preferenze della portlet; configuration.jsp
, pagina contenente il form per impostare le preferenze della portlet; view.jsp
, pagina principale della portlet; - altri file
.jsp
.
Ovviamente tutte le pagine JSP devono includere la init.jsp
mediante la solita direttiva:
<%@ include file="/html/.../init.jsp" %>
A questo punto, all'interno della paginainit.jsp
, dopo aver recuperato tutte le preferenze della portlet (con la classePrefsParamUtil
) create una variabile booleana portletConfigured
(il nome è solo una convenzione) ed inizializzatela a true
o false
a seconda che i valori delle preferenze siano corretti oppure no.
Dopodichè modificate la pagina view.jsp
come segue:
<c:choose>
<c:when test="<%=portletConfigured %>">
<!-- Qui ci va il normale codice della vostra pagina -->
</c:when>
<c:otherwise>
<liferay-util:include page="/html/portal/portlet_not_setup.jsp" />
</c:otherwise>
</c:choose>
Abbiamo finito! Tutta la magia sta nell'inclusione della pagina di portale che si occupa di visualizzare un messaggio di avviso, cliccando sul quale si apre in popup la pagina di configurazione della portlet.