2013-08-06 13 views
0

我正在嘗試在Liferay portlet中實現確認對話框,當用戶單擊一個觸發actionRequest的鏈接時應顯示該對話框。Portlet中的確認對話框

然而,似乎portlet容器不具有圖形用戶界面,所以我得到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 
     } 

    } 

也許我不想嘗試實施t在java內部的對話框,但將其移動到JSP和使用javascript或我應該做一些其他方式...可能請給我一個提示如何解決Java中的這種異常或給我一個示例代碼,可以與actionURL?非常感謝您的幫助!

回答

0

檢查您的導入。

您正在使用Swing的JOptionPane

您可以作爲本地應用程序運行Swing。但是,portlet在服務器上運行,因此無法通過WebBrowser將本地應用程序呈現給客戶端。

你可以看看如jQuery提供一些對話框功能的Javascript庫。這些將由用戶瀏覽器執行。