我正在尝试在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或show中解决此异常我可以使用actionURL的示例代码?非常感谢您的帮助!
答案 0 :(得分:0)
检查您的进口。
您正在使用Swing中的JOptionPane。
您可以将Swing作为本地应用程序运行。但是,portlet正在服务器上运行,因此无法通过WebBrowser向客户端呈现本地应用程序。
您可以查看提供一些对话功能的jQuery等Javascript库。这些将由用户浏览器执行。