我是使用JSF2和PrimeFaces。当用户更改菜单选项时,我如何编写selectOneMenu来调用JSF导航以将用户重定向到具有不同参数的相同页面? 我只需要更改颜色。
从url:
从url:
<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}&color=red" itemLabel="Vehicle red " />
<f:selectItem itemValue="viewVehicles.xhtml?vehicle=#{myViewController.vehicle}&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);
}
outcome
的时候,是指 JSF 导航结果还是 URL? - kolossusoutcome
变量是JSF导航结果还是完整的URL? - kolossusnavigate
方法中构建URL(而不是在视图中进行你目前尝试的花式操作)。 - kolossus