簡體   English   中英

從支持bean調用PrimeFaces對話框

[英]Call PrimeFaces dialog from backing bean

我希望當用戶未登錄時,單擊“ Add To Card按鈕后,應出現“ Login對話框。

這是Book.xhtml

<h:form>
    <p:commandButton value="Add To Card"
                     actionListener="#{booksBean.orderBook()}" 
                     class="QtyBtn">
        <f:ajax execute="@form" rendered="@form"/>
    </p:commandButton>
</h:form>

這是bean:

@Component
@Scope("session")
public class BooksBean implements Serializable {
...
public void orderBook() {
...

    if (currentUser == null) {  // show the login dialog
        RequestContext.getCurrentInstance().openDialog("Login");
    }

但是Login.xhtml沒有打開。


首先,您要做的是使用PrimeFaces Dialog Framework(DF)。 DF讓您在對話框中打開XHTML視圖

  1. 將此添加到您的faces-config.xml

     <application> <action-listener> org.primefaces.application.DialogActionListener </action-listener> <navigation-handler> org.primefaces.application.DialogNavigationHandler </navigation-handler> <view-handler> org.primefaces.application.DialogViewHandler </view-handler> </application> 
  1. 將您的login.xhtml頁面創建為任何XHTML頁面。

  2. 將相應的結果添加到faces-config.xml。 例如,

     <navigation-case> <from-outcome>Login</from-outcome> <to-view-id>/pages/login.xhtml</to-view-id> <redirect /> </navigation-case> 
  3. 使用RequestContext.getCurrentInstance().openDialog("Login");打開對話框

請注意,DF將在框架內打開新對話框。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM