我有一个Webapp与科技:野蝇,JSF,Primefaces
我得选一个菜单。第一个selected菜单加载所有仓库,第二个selected菜单加载所有依赖于所选仓库的产品。
我想实现这种可能性,因为我没有必要选择一个仓库。我想有这样的可能性,我没有选择一个仓库,逻辑上,如果我不选择仓库,产品选择一个菜单必须被禁用。
如果提交表单时没有仓库,则应该将其写入数据库null中,用于仓库,对于产品也应为null。
我的第一次尝试是在仓库的select菜单中执行以下条目。
<f:selectItem itemLabel="---" itemValue="#{null}" value="#{null}"/>现在,如果没有选择仓库,我不知道如何将仓库选择一个菜单的值设置为null。
value="#{warehouseDataActions.actualWarehouse}" --> how to set to null 第二个问题是,在第一个select菜单的Ajax中,我必须添加Attribute = true。如果添加以下行,则此属性仅对我来说是蜜源。我不知道为什么?
<f:selectItem itemLabel="---" itemValue="#{null}" value="#{null}"/>所以我有三个问题:
如何将actualWarehouse和.actualWriteservice.warehouseProduct设置为空?
#{texts'writeservice.product'}
发布于 2015-11-11 19:21:19
为了使ajax更新正常工作,必须将仓库和产品封装在母面板中,然后更新母版:
<h:panelGroup id="motherPanel" layout="block">
<p:selectOneMenu style="width:151px" value="#{warehouseDataActions.actualWarehouse}">
<f:converter converterId="ccWarehouseConverter" />
<f:selectItem itemLabel="---" itemValue="#{null}" value="#{null}"/>
<f:selectItems
value="#{warehouseDataActions.allWarehousesForProject}"
var="warehouse"
itemLabel="#{warehouse.warehouseName}"
itemValue="#{warehouse}" />
<p:ajax listener="#{warehouseProductDataActions.warehouseProductsForWarehouse}"
update="motherPanel" />
</p:selectOneMenu>
<p:panelGrid>
<p:outputLabel for="products">#{texts['writeservice.product']}</p:outputLabel>
<p:selectOneMenu id="products" style="width:151px" disabled="#{empty warehouseDataActions.actualWarehouse}"
value="#{writeserviceDataActions.actualWriteservice.warehouseProduct}">
<f:converter converterId="ccWarehouseProductConverter" />
<f:selectItems
value="#{warehouseProductDataActions.warehouseProductsResult}"
var="warehouseProduct" itemLabel="#{warehouseProduct.product.productName}"
itemValue="#{warehouseProduct}" />
</p:selectOneMenu>
</p:panelGrid>
</h:panelGroup>https://stackoverflow.com/questions/33648945
复制相似问题