JSF:导航问题(Ajax /非Ajax)



当按下以下(PrimeFaces)按钮

<p:commandButton value="Search"
                 actionListener="#{personController.searchPersons}"
                 update="resultTable"/>

加载一个对象列表,并在当前页面的表中显示它们。这是通过Ajax调用完成的。

现在我想做以下事情:如果只找到一个对象,不要更新结果表,而是直接链接到"详细页面"。(如detail.xhtml)

如何做到这一点?

我知道我可以通过我的searchPersons()方法的返回值控制导航。但它并没有像它应该的那样工作。我认为这与我的按钮的update="resultTable"有关。

您可以在oncomplete属性中引入一些JS。它将在bean操作和部分更新完成时执行。你可以通过给window.location分配一个新的URL来改变JS中的窗口位置。

这里是一个随机的启动示例,假设您有一个id为persons的persons表,并且详细信息链接看起来类似于表行中的<a class="detail" href="detail.xhtml?id=123">

oncomplete="var $persons = jQuery('#persons tbody tr'); if ($persons.length == 1) window.location = $persons.find('a.detail').attr('href');"

相关内容

  • 没有找到相关文章

最新更新