2014-01-28 92 views
0

當我閱讀關於Primefaces Dialog Framework(DF),即「用於在對話框中打開外部xhtml頁面」時,我認爲這意味着您可以從另一個域顯示xhtml。Primefaces對話框框架可以從外部域顯示xhtml嗎?

如果是這樣的話,我該如何給方法絕對url ... requestContext.getCurrentInstance().openDialog(outcome)

這些似乎沒有解決。

如果情況並非如此,那麼DF的目的/優勢是什麼?如果我只能在同一個應用中顯示xhtml,爲什麼不使用聲明式<p:dialog>組件?例如,如果您想重複使用多個頁面中的對話框,則可以將它放在<ui:composition>之內。

回答

1

OpenDialog使頁面作者打開通過JSF導航結果在對話框中引用的XHTML中,選項的配置對於像模式,可拖動最後是可選的PARAMS都認爲PARAMS參數傳遞給對話框屬性對話框。

其實PrimeFaces博客條目指的是指使用內部應用程序查看結果的對話框參考。這限制了您的應用程序JSF導航案例的路徑。

那麼對話框架的優點是什麼?我會說,使您能夠在運行時指定結果和對話框屬性。比方說,你有一個車表,當用戶點擊一行時你打開一個詳細對話框。 Suposing你需要顯示取決於汽車的分支不同的內容,這將是容易控制是怎麼回事對話框內顯示效果:

String outcome = "dialogs/genericCar"; 
if (car.getBranch.equals("Ferrari")){ 
    outcome = "dialogs/ferrariCar"; 
} 
else if (car.getBranch.equals("Aston Martin")){ 
    outcome = "dialogs/astonCar"; 
} 
RequestContext.getCurrentInstance().openDialog(outcome); 

這樣做,這將是那麼幹淨的直轉發。否則,使用p:dialog標記,只能根據您要顯示的內容將其限制爲一個單獨的對話框,其中包含條件呈現。

根據想要渲染的對象屬性能夠改變對話框屬性的機會也很有趣。

參見:

+1

啊好了,過去我已經通過創建用戶界面單獨的對話框做到了這一點:成分。然後,您可以使用widgetVar打開您喜歡的任何一個。在一個bean中,你可以使用類似於RequestContext.getCurrentInstance()。execute(「myDialog.show()」)的東西。但是這需要所有的可能性已經在ui:includes的頁面中呈現出來。我可以看到這種方法確實更簡單,更清潔。非常感謝 –

相關問題