Liferay + JSP + Alloyui: pulsante come link e invia
Domanda
Io uso Liferay 6.2 su JBoss 7.1.1. Inoltre sto usando un JSP come vista con Alloyui.
Voglio un pulsante come un collegamento e come sottomissione di un valore a un metodo nella classe MVCPortlet. Il collegamento è all'interno di un array Java. L'attributo che viene passato al metodo Java è all'interno di un campo di input.
funziona se utilizzo solo uno di questi due. Ho provato a combinarli ma non funziona. Ho provato questo:
<a href="<%=unread[i][k]%>" target="_blank" >
<aui:button type="submit" />
</a>
.
Chiama il metodo ma non apre una nuova scheda nel mio browser.Nel mio browser posso vedere che è un link, se clicco direttamente su di esso -> Nuova scheda, lo apre correttamente in una nuova scheda.Ma non se sbaglio solo sul pulsante. Secondo modo:
<aui:button type="submit" onclick="window.open('http://www.google.de', '_blank', ''); return false;"/>
.
Apre solo Google ma non chiama il metodo.Inoltre non è possibile ottenere un attributo Java all'interno di un JavaScript, ma potrei ottenere il valore di un campo di input nascosto.Ma ancora ci sarebbe il problema che non chiama il metodo.
Soluzione
Ho deciso di andare avanti con la seconda soluzione.
Il primo errore è stato return false;
nel mio onclick param, quindi l'ho cancellato.
Quindi la funzione di invio funziona come al solito.
Il prossimo problema era accedere a una variabile Java all'interno del metodo JavaScript OnClick, quindi ho usato EL e JSTL per farla funzionare:
<c:set var="url" scope="session" value="<%=unread[i][k]%>"/>
<aui:button type="submit" onclick="window.open('${url}', '_blank', '');" />
.