2012-04-23 67 views
0

我使用PrimeFaces JSF庫和下面的代碼在彈出的對話框打開一個頁面:如何將數據傳遞給調用者頁面?

<p:commandLink ajax="false" onclick="PopupMultiFileSelect('multi_file_select.faces', 'Select files','500','300'); return false;"> 
    <h:graphicImage style="border: none" value="./img/add.jpg"/> 
</p:commandLink> 

下面是javascript代碼:

function PopupMultiFileSelect(pageURL, title, w, h) 
{ 
var left = (screen.width/2)-(w/2); 
var top = (screen.height/2)-(h/2); 
var childWin = window.open (pageURL, '_blank', 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, copyhistory=no, width='+w+', height='+h+', top='+top+', left='+left); 

if (childWin.opener==null) 
    childWin.opener = self; 

return childWin; 
} 

我在彈出的頁面做的僅僅是選擇一些文件名,並把字符串列表中的名字,像這樣:

List<String> fileNames; 

我將如何通過列表下來給調用者頁面?

+1

爲什麼所有這些不必要的自制HTML/JS的努力?爲什麼不使用隨時可用的[''](http://www.primefaces.org/showcase/ui/dialog.jsf)? – BalusC 2012-04-23 14:57:04

+2

該列表在調用者頁面有權訪問的託管bean內部嗎?如果是這樣,只需在關閉彈出窗口並從列表中讀取數據時刷新頁面(或相關部分)即可。 – Thomas 2012-04-23 14:58:04

+0

@BalusC:它接合了我,''只是爲了簡單的東西;我需要在這個對話框中加載一個全新的html頁面,一個帶有它自己的支持bean的頁面等等。在這種情況下,''也是這樣的嗎? – Danijel 2012-04-24 14:53:30

回答

0

您可以使用f:param將信息傳遞到另一個頁面。 看到這個例子:

<f:param name="listnames" value="#{bean.fileNames}" /> 
+0

這不適用於這個特殊用例。 – BalusC 2012-04-24 14:56:48

+0

@java_developer:謝謝。我仍然不明白這是如何工作的。你能否給出更多的僞代碼來說明? – Danijel 2012-04-24 14:57:28

+0

所以你想要從後端傳遞文件名到JSP,對吧? – Ved 2012-04-25 04:59:49