2017-05-19 50 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

请接受解决您的问题的答案! –

相关问题