Quantcast
Channel: BTSoru.com - Bilisim ve Yazilim Teknolojileri Soru/Cevap Platformu - latest questions
Viewing all articles
Browse latest Browse all 4270

JSF - h:selectOneMenu seçimi değiştiğinde ajax ile metod tetikleme

$
0
0

Marka ve model seçimi için iki tane selectOneMenu komponentim var. Marka değiştiğinde ajax ile model komponenti güncellenecek. Bu durumda brandChanged metodu hiç tetiklenmemektedir. Daha önceki denemelerimde tetiklenmesine rağmen brand değişkeni null olarak set ediliyordu. Sorun neden kaynaklanıyor olabilir? Şimdiden ilgilenen arkadaşlara teşekkürler.

Brand.java

    public class Brand {
    private int id;
    private String name;

public Brand(int id, String name) {
        this.id = id;
        this.name = name;
    }

public int getId() {
        return id;
    }

public void setId(int id) {
        this.id = id;
    }

public String getName() {
        return name;
    }

public void setName(String name) {
        this.name = name;
    }
    }
**Model.java**
    public class Model {
    private int id;
    private String name;

public Model(int id, String name) {
    this.id = id;
    this.name = name;
}

public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

}

CarBean.java

@ManagedBean(name = "carbean")
@ViewScoped
public class CarBean implements Serializable {
    private Brand brand;
    private Model model;
    private List<brand> brandList = new ArrayList<brand>();
    private List<model> modelList = new ArrayList<model>();

@PostConstruct
    public void init() {
        System.out.println("PostConstruct");
        brandList.add(new Brand(1, "Audi"));
        brandList.add(new Brand(2, "Opel"));

modelList.add(new Model(1, "A1"));
        modelList.add(new Model(2, "A3"));
    }

public void brandChanged(AjaxBehaviorEvent event) {
        System.out.println("brandChanged");
        modelList.clear();
        if (brand.getId() == 1) {
            modelList.add(new Model(1, "A1"));
            modelList.add(new Model(2, "A3"));
        } else if (brand.getId() == 2) {
            modelList.add(new Model(1, "Astra"));
            modelList.add(new Model(2, "Corsa"));
        }
    }

public Brand getBrand() {
        return brand;
    }

public void setBrand(Brand brand) {
        this.brand = brand;
    }

public Model getModel() {
        return model;
    }

public void setModel(Model model) {
        this.model = model;
    }

public List<brand> getBrandList() {
        return brandList;
    }

public void setBrandList(List<brand> brandList) {
        this.brandList = brandList;
    }

public List<model> getModelList() {
        return modelList;
    }

public void setModelList(List<model> modelList) {
        this.modelList = modelList;
    }
}

home.xhtml

<h:form>
<h:selectOneMenu id="brandid" value="#{carbean.brand}">
    <f:selectItems value="#{carbean.brandList}" var="brand" itemValue="#{brand.id}" itemLabel="#{brand.name}" />
    <f:ajax event="change" listener="#{carbean.brandChanged}" execute="@this" render="modelid" />
</h:selectOneMenu>

<h:selectOneMenu id="modelid" value="#{carbean.model}">
    <f:selectItems value="#{carbean.modelList}" var="model" itemValue="#{model.id}" itemLabel="#{model.name}" />
</h:selectOneMenu></h:form>

Viewing all articles
Browse latest Browse all 4270

Trending Articles


Mide ağrısı için


Alessandra Torre - Karanlık Yalanlar


Şekilli süslü hazır floodlar


Flatcast Güneş ve Ay Flood Şekilleri


Gone Are the Days (2018) (ENG) (1080p)


Yildiz yükseltme


yc82


!!!!!!!!!! Amın !!!!!!!!!


Celp At Nalı (Sahih Tılsım)


SCCM 2012 Client Installation issue