我是JSF和UI的新手。
我希望当我点击子菜单时,我的业务逻辑应该执行,之后我的页面会呈现。我尝试了下面的代码片段,但它不起作用,页面正在渲染,但actionListener
没有被执行。当我删除url
部分时,actionListener
正在运行,但现在我不知道如何渲染页面。
<ace:menuItem id="RedactionCapture" value="Redaction"
actionListener="#{redactionController.getRedactionList}"
url="#{firmUtility.legalHoldCreationOrRemovalUrl}"
style="width:220px" styleClass="dropdownmenu"
target="imagepgframe">
</ace:menuItem>
答案 0 :(得分:2)
这是预期的行为。 actionListener
是action
的监听器,而不是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);
}
另见: