2017-05-19 92 views
0

我是JSF和UI的新手。 我希望當我點擊子菜單時,我的業務邏輯應該執行,然後我的頁面呈現。我試過下面的代碼片段,但它不工作,頁面正在呈現,但actionListener沒有得到執行。當我刪除url部分時,actionListener正在工作,但現在我陷入瞭如何呈現頁面的狀態。無法將url和actionListener放在一起

<ace:menuItem id="RedactionCapture" value="Redaction" 
    actionListener="#{redactionController.getRedactionList}" 
    url="#{firmUtility.legalHoldCreationOrRemovalUrl}" 
    style="width:220px" styleClass="dropdownmenu" 
    target="imagepgframe"> 
</ace:menuItem> 

回答

2

這是預期的行爲。 actionListeneraction的監聽者,而不是URL。您可以創建一個action,它會與偵聽器一起重定向到URL或執行操作中的所有工作。請注意,這不僅在IceFaces中,而且在PrimeFaces中也是如此。

例如(具有受聽者),XHTML:

<ace:menuItem action="#{yourBean.redirect(firmUtility.legalHoldCreationOrRemovalUrl)}" 
       actionListener="#{redactionController.getRedactionList}" 
       ... /> 

豆:

public void redirect(String url) throws IOException { 
    ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext(); 
    externalContext.redirect(url); 
} 

參見:

+0

你能幫我舉個例子。我怎樣才能做到這一點。 –

+0

@AviteshKesharwani我已經添加了一個例子。 –

+0

請接受解決您的問題的答案! –

相關問題