gpt4 book ai didi

ajax - 从 ajax 监听器方法内部发送重定向

转载 作者:行者123 更新时间:2023-12-04 03:08:08 27 4
gpt4 key购买 nike

这个问题与this密切相关一(已回答)。

在我的整个项目中,我使用 JSF 命令按钮在屏幕之间导航,其中 action 属性将指向一个返回字符串的函数。该字符串是新屏幕的名称,例如

<h:commandButton value="Select" action="#{searchResultsBundledBean.selectFlight}">
</h:commandButton>
selectFlight将返回一个字符串,例如 selected-flight-review这会将用户引导至 selected-flight-review.xhtml
出于移动目的,我必须制作一个 panelGrid使用 ajax 调用可点击,例如
<h:panelGrid>
<f:ajax event="click" listener="#{searchResultsBundledBean.clickFlight(lowFareBundledSearchItem)}"/>
</h:panelGrid

这有效,我已经对其进行了测试,并返回了正确的结果(在返回之前对其进行了记录)

但是,不会发生重定向。 ajax 调用还没有这样做。如何让它重定向到另一个屏幕?我不必通过任何变量发送,我只需要显示新屏幕。我应该使用 ajax 以外的其他东西(我宁愿不这样做),还是有什么方法可以使这项工作像现在这样?

最佳答案

您可以重定向来自支持 bean 的响应:

public void clickFlight(Item lowFareBundledSearchItem) throws IOException {
// ...
FacesContext.getCurrentInstance().getExternalContext().redirect("selected-flight-review.xhtml");
FacesContext.getCurrentInstance().responseComplete();
}

关于ajax - 从 ajax 监听器方法内部发送重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18589616/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com