Pergunta

Eu uso o Liferay 6.2 no JBoss 7.1.1.Também estou usando um JSP como visualização com AlloyUI.

Quero um botão como link e como remetente de um valor para um método na classe MVCPortlet.O link está dentro de um array java.O atributo passado para o método java está dentro de um campo de entrada.

Funciona se eu usar apenas um desses dois.Tentei combiná-los, mas não funcionou.Eu tentei isso:

<a href="<%=unread[i][k]%>" target="_blank" >
<aui:button type="submit" />
</a>

Ele chama o método, mas não abre uma nova aba no meu navegador.No meu navegador posso ver que é um link, se eu clicar com o botão direito nele -> nova aba, ele abre corretamente em uma nova aba.Mas não se eu apenas clicar no botão.Segunda maneira:

<aui:button type="submit" onclick="window.open('http://www.google.de', '_blank', ''); return false;"/>

Apenas abre o Google, mas não chama o método.Além disso, não é possível obter um atributo Java dentro de um Javascript, mas consegui obter o valor de um campo de entrada oculto.Mas ainda haveria o problema de não chamar o método.

Foi útil?

Solução

Decidi seguir com a segunda solução.O primeiro erro foi return false; no meu parâmetro onclick, então eu o excluí.Então a função de envio funciona normalmente.O próximo problema era acessar uma variável Java dentro do método onclick javascript, então usei EL e JSTL para fazer funcionar:

<c:set var="url" scope="session" value="<%=unread[i][k]%>"/>
<aui:button type="submit" onclick="window.open('${url}', '_blank', '');" />
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top