JSF - 选择一个菜单取决于其他选择一个菜单

时间:2015-10-06 14:17:07

标签: ajax jsf xhtml

我必须选择一个菜单。在第一个选择菜单中,我加载所有仓库值。

在第二个菜单中,我想加载所有产品,这取决于仓库。所以,如果我做一个值更改第一个选择一个菜单,我将呈现第二个菜单。

我有一个ProductDataAction Bean。在这个bean我有以下方法。

public List<Product> getAllProductsForProjectAndWarehouse() {
            Warehouseinput w = warehouseinputDataAction.getActualWarehouseInput();
            return w.getWarehouse().getProduct();
    }

我的问题是,我的ProductDataActionBean中的值w.getWarehouse()为null。

我的期望是,它不是null,因为在我的xthml页面中我设置了 warehouseinputSaveActions.actualWarehouseInput.warehouse中的第一个选择菜单的值。

<div class="form-group form-md-line-input">
    <label class="col-md-2 control-label">#{texts['warehouseinput.warehouse']}</label>
        <h:selectOneMenu value="#{warehouseinputSaveActions.actualWarehouseInput.warehouse}">
            <f:converter converterId="ccWarehouseConverter"/>
            <f:selectItems value="#{warehouseDataActions.getAllWarehousesForProject
                    (warehouseinputDataActions.actualWarehouseInput.project)}" var="warehouse" 
                    itemLabel="#{warehouse.warehouseName}" itemValue="#{warehouse}"/>
            <f:ajax event="change" execute="@form" render="products"/>
        </h:selectOneMenu>

</div>

<div class="form-group form-md-line-input">
    <label class="col-md-2 control-label">#{texts['warehouseinput.product']}</label>
        <h:selectOneMenu id="products" value="#{warehouseinputSaveActions.actualWarehouseInput.product}">
            <f:converter converterId="ccConverter"/>
            <f:selectItems value="#{productDataActions.getAllProductsForProjectAndWarehouse()}"
                            var="product"itemLabel="#{product.productName}" itemValue="#{product}"/>
        </h:selectOneMenu>
</div>  

0 个答案:

没有答案