如何同时使用导航规则和 f:ajax
Posted
技术标签:
【中文标题】如何同时使用导航规则和 f:ajax【英文标题】:How to use both Navigation Rule and f:ajax 【发布时间】:2012-02-25 18:34:55 【问题描述】:这是我的场景:在某些情况下,我想通过 Ajax 更新页面,在其他情况下,执行导航规则。我的用例是登录表单。如果他们的 uname/password 失败,我希望他们通过 ajax 接收错误消息,但如果成功则导航到新页面。
有没有人使用 JSF2.0 f:ajax apis 做到这一点?我对超出标准 facelets、jsf2.0 等的解决方案并不感兴趣。
【问题讨论】:
【参考方案1】:这与不使用 ajax 时没有什么不同。只需通过<h:commandXxx action>
(因此不是<f:ajax listener>
)将下一个视图ID返回为String
。
所以,只是
<h:commandButton value="Login" action="#bean.login">
<f:ajax execute="@form" render="@form" />
</h:commandButton>
与
public String login()
// ...
return "nextpage";
与没有<f:ajax>
时一样好。它只会转到nextpage.xhtml
。
另见:
Differences between action and actionListener JSF f:ajax listener vs commandButton action【讨论】:
整洁!如果你想留在'当前页面',你只需返回“”我发现。哇,这一点都不难! 不客气。当你想导航回同一个视图时,而不是返回null
(或void
,如果可能的话)而不是空字符串,这样视图(和视图范围的bean,如果有的话)将被重用而不是重新创建。
以上是关于如何同时使用导航规则和 f:ajax的主要内容,如果未能解决你的问题,请参考以下文章
如何在 iOS 中创建滑动导航(在 Objective-C 中)