gpt4 book ai didi

JSF/PrimeFaces selectOneMenu 更改 url 参数并重定向

转载 作者:行者123 更新时间:2023-12-05 04:16:36 25 4
gpt4 key购买 nike

我正在使用 JSF2 和 PrimeFaces。我如何编写 selectOneMenu 来调用 JSF 导航以将用户重定向到同一页面,但当他更改菜单中的选项时使用不同的参数?我只需要改变颜色。

来自网址:

    <f:metadata>
<f:viewParam name="vehicle" value="#{myViewController.vehicle}"/>
<f:viewParam name="vehicle" value="#{myViewController.color}"/>
</f:metadata>

MyView.xhtml:(无工作)

    <h:form id="selectOneMenuEdition">
<p:selectOneMenu id="selectOneMenuHeader"
value="#{selectOneMenuHeader.outcome}" >
<f:selectItem itemValue="viewVehicles.xhtml?vehicle=#{myViewController.vehicle}&amp;color=red" itemLabel="Vehicle red " />
<f:selectItem itemValue="viewVehicles.xhtml?vehicle=#{myViewController.vehicle}&amp;color=blue" itemLabel="Vehicle blue" />
<p:ajax event="change" listener="#{selectOneMenuHeader.navigate}" />
</p:selectOneMenu>
</h:form>

托管 bean :

private String outcome;

public void navigate() throws IOException {
FacesContext.getCurrentInstance().getExternalContext().redirect(outcome);
}

最佳答案

你的 <p:selectOneMenu>绑定(bind)到 selectOneMenuHeader.outcome ,因此您只需要在您的 bean 中获取它的值。

然后您可以创建自己的 URL 以使用所需参数重定向用户。

例子(bean):

public void navigate() throws IOException {
String url = "yourPage.jsf?color=" + outcome;
FacesContext.getCurrentInstance().getExternalContext().redirect(url);
}

第二种解决方案是添加一个 javascript onchange 事件,通过采用当前选定的选项来重定向用户。

示例(普通 JS):

onchange="document.location.href='yourPage' + this.options[this.selectedIndex].value;"

关于JSF/PrimeFaces selectOneMenu 更改 url 参数并重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26778590/

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