2011-12-02 81 views
0

如果我在JSF頁面上創建彈出框,我需要使用自定義組件。 它似乎使用CSS隱藏和顯示的DHTML技術,並在當前頁面上創建疊加層,而不是合適的窗口。使用自定義組件在JSF中創建彈出框

在我的情況下,它顯示一個由servlet提供的圖像。

我嘗試了幾件事情,結果如下: 1)如果我使用<h:commandButton action="bean.displayImage" onclick="mypopup.show()">彈出窗口和圖像顯示,然後消失,因爲commandButton刷新頁面。

2)如果我改變命令按鈕的類型在行動領域「按鈕」,然後bean.displayImage不會被調用,也不是應該服務於圖像

3)我也試圖把bean.displayImage該servlet在actionListener字段中,並通過添加ActionEvent e作爲參數來修改該方法,以防止頁面刷新,但它具有與2)

我用完了想法,任何人都可以幫忙嗎?

由於提前, 邁克爾

+0

什麼的'#{bean.displayImage}'的目的是什麼?究竟是什麼在視圖方面無法完成? – BalusC

+0

它的一個控制器(請求作用域),它獲取一個binary64圖像並將其放入會話圖。然後servlet使用它來呈現jpg圖像。 在視圖中,我顯示servlet – Themikebe

+0

那麼,我的答案仍然適用。 – BalusC

回答

0

的功能要求並不完全清楚,但你可以使用<f:ajax>使它一個Ajax請求,而不是呈現網頁的某些部分。

喜歡的東西:

<h:commandButton value="Show popup" onclick="mypopup.show()"> 
    <f:ajax listener="#{bean.displayImage}" render="image" /> 
</h:commandButton> 
<h:panelGroup id="image"> 
    <h:graphicImage value="imageURL" rendered="#{bean.renderImage}" /> 
</h:panelGroup> 
相關問題