Диалог подтверждения в портлете

Я пытаюсь реализовать диалоговое окно подтверждения в портлете 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, которые предлагают некоторые функции диалога. Они будут выполняться браузерами пользователей.

Другие вопросы по тегам