Диалог подтверждения в портлете
Я пытаюсь реализовать диалоговое окно подтверждения в портлете Liferay, которое должно отображаться, когда пользователь нажимает на ссылку, вызывающую действие actionRequest.
Однако, похоже, что контейнер портлета не имеет графического интерфейса, поэтому я получаю java.awt.HeadlessException
Это часть, относящаяся к моей странице JSP:
<li><a href="<%=deleteDatabase%>">Delete messages from database</a></li>
<portlet:actionURL var="deleteDatabase" name="deleteDatabase">
</portlet:actionURL>
Класс портлетаJava:
public void deleteDatabase(final ActionRequest actionRequest,
final ActionResponse actionResponse) throws IOException,
PortletException {
int dialogResult = JOptionPane.showConfirmDialog(null,
"Would You Like to delete all messages?", "Warning",
JOptionPane.YES_NO_OPTION);
if (dialogResult == JOptionPane.YES_OPTION) {
// do some stuff here
}
}
Возможно, я не буду пытаться реализовать диалог внутри java, но перенесу его в JSP и использую javascript, или я должен сделать это другим способом... Может быть, дайте мне подсказку, как решить это исключение в Java, или покажите мне пример код, который будет работать с actionURL? Большое спасибо за любую помощь!
1 ответ
Проверьте ваш импорт.
Вы используете JOptionPane из Swing.
Вы можете запускать Swing как локальные приложения. Однако портлет работает на сервере и поэтому не может отображать локальное приложение для ваших клиентов через веб-браузер.
Вы можете проверить библиотеки Javascript, такие как jQuery, которые предлагают некоторые функции диалога. Они будут выполняться браузерами пользователей.