Liferay + JSP + AlloyUI: кнопка как ссылка и отправка

Я использую Liferay 6.2 на JBoss 7.1.1. Также я использую JSP как вид с AlloyUI.

Мне нужна кнопка в качестве ссылки и в качестве отправителя значения для метода в классе MVCPortlet. Ссылка находится внутри массива java. Атрибут, который передается методу Java, находится внутри поля ввода.

Это работает, если я использую только один из этих двух. Я пытался их совместить, но это не работает. Я пробовал это:

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

Он вызывает метод, но не открывает новую вкладку в моем браузере. В моем браузере я вижу, что это ссылка, если я нажму на нее правой кнопкой мыши -> новая вкладка, она правильно откроется в новой вкладке. Но нет, если я просто нажму на кнопку. Второй способ:

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

Он просто открывает Google, но не вызывает метод. Также невозможно получить атрибут Java внутри Javascript, но я могу получить значение из скрытого поля ввода. Но все равно будет проблема, что он не вызывает метод.


person jcomouth    schedule 30.07.2014    source источник
comment
Написание функции js (которая будет запускаться при нажатии тега привязки), которая отправит форму, будет лучшим вариантом. Также держите свою форму и часть portlet:actionURL вне цикла for   -  person Pankaj Kathiriya    schedule 30.07.2014


Ответы (1)


Я решил продолжить со вторым решением. Первая ошибка была return false; в моем параметре onclick, поэтому я удалил ее. Затем функция отправки работает как обычно. Следующая проблема заключалась в доступе к переменной Java внутри метода javascript onclick, поэтому я использовал EL и JSTL, чтобы заставить его работать:

<c:set var="url" scope="session" value="<%=unread[i][k]%>"/>
<aui:button type="submit" onclick="window.open('${url}', '_blank', '');" />
person jcomouth    schedule 01.08.2014