我正在使用 JSF 和 Primefaces 开发一个 Web 应用程序。我想显示以下菜单,并根据所选选项转到一页或另一页。
XHTML代码:
<p:outputLabel for="car" value="Grouping: " />
<p:selectOneMenu id="car" value="#{selectOneMenuView.car}">
<f:selectItem itemLabel="Select One" itemValue="" />
<f:selectItems value="#{selectOneMenuView.cars}" />
</p:selectOneMenu>
托管bean代码:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.model.SelectItem;
import javax.faces.model.SelectItemGroup;
ManagedBean
public class SelectOneMenuView {
private String console;
private String car;
private List<SelectItem> cars;
private String city;
private Map<String,String> cities = new HashMap<String, String>();
private Theme theme;
private List<Theme> themes;
@ManagedProperty("#{themeService}")
private ThemeService service;
@PostConstruct
public void init() {
//cars
SelectItemGroup g1 = new SelectItemGroup("German Cars");
g1.setSelectItems(new SelectItem[] {new SelectItem("BMW", "BMW"), new SelectItem("Mercedes", "Mercedes"), new SelectItem("Volkswagen", "Volkswagen")});
SelectItemGroup g2 = new SelectItemGroup("American Cars");
g2.setSelectItems(new SelectItem[] {new SelectItem("Chrysler", "Chrysler"), new SelectItem("GM", "GM"), new SelectItem("Ford", "Ford")});
cars = new ArrayList<SelectItem>();
cars.add(g1);
cars.add(g2);
public String getCar() {
return car;
}
public void setCar(String car) {
this.car = car;
}
}
如何才能使用户在从列表中选择 BMW 选项时导航到 pageBMW.xhtml,或者在从列表中选择 Mercedes 选项时导航到 pagemercedes.xhtml?
我会将 AJAX 更改事件附加到selectOneMenu
它调用您的 bean 上的方法并通过它进行重定向,类似于各个接受的答案的组合selectOneMenu ajax 事件 https://stackoverflow.com/questions/16587585/selectonemenu-ajax-events(AJAX 事件)和从 ajax 侦听器方法内部发送重定向 https://stackoverflow.com/questions/18589616/sending-a-redirect-from-inside-an-ajax-listener-method(重定向)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)