[英]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視圖
將此添加到您的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>
將您的login.xhtml頁面創建為任何XHTML頁面。
將相應的結果添加到faces-config.xml。 例如,
<navigation-case> <from-outcome>Login</from-outcome> <to-view-id>/pages/login.xhtml</to-view-id> <redirect /> </navigation-case>
使用RequestContext.getCurrentInstance().openDialog("Login");
打開對話框
請注意,DF將在框架內打開新對話框。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.