0

我正在尝试在 Liferay portlet 中实现一个确认对话框,当用户单击触发actionRequest的链接时将显示该对话框。

但是,似乎 portlet 容器没有 GUI,所以我得到了java.awt.HeadlessException

这是与我的JSP页面相关的部分:

<li><a href="<%=deleteDatabase%>">Delete messages from database</a></li>

<portlet:actionURL var="deleteDatabase" name="deleteDatabase">
    </portlet:actionURL>

Java portlet 类:

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 一起使用的代码?非常感谢您的帮助!

4

1 回答 1

0

检查你的进口。

您正在使用Swing 中的JOptionPane

您可以将 Swing 作为本地应用程序运行。然而,portlet 在服务器上运行,因此无法通过 WebBrowser 将本地应用程序呈现给您的客户端。

您可以查看提供一些对话框功能的jQuery等 Javascript 库。这些将由用户浏览器执行。

于 2013-08-06T17:35:16.847 回答