这是每个迭代产品列表的,我需要在下面的下拉列表中设置productGroupId。
<c:forEach items="${productgroup.productList}" var="product">
<h:selectOneMenu value="${product.appleProdgroupId}">
<f:selectItems value="#{displayProductsBean.productGroupListDropDown}"/>
</h:selectOneMenu>
我尝试了所有组合,但它不起作用......任何人都可以请帮助
答案 0 :(得分:0)
目前还不清楚你的意思是“它不起作用”。在到目前为止发布的代码中,我看到至少3个可能的原因:
您的第一个问题是,您需要使用#{}
语法而不是${}
语法,以便能够自动创建托管bean(如果它们在范围内不存在)。
<c:forEach items="#{productgroup.productList}" var="product">
<h:selectOneMenu value="#{product.appleProdgroupId}">
<f:selectItems value="#{displayProductsBean.productGroupListDropDown}" />
</h:selectOneMenu>
</c:forEach>
您的第二个问题可能是<c:forEach>
,但这取决于运行此代码的上下文。 <c:forEach>
是视图构建时间标记。如果上述方法无效,则需要<ui:repeat>
。
<ui:repeat value="#{productgroup.productList}" var="product">
<h:selectOneMenu value="#{product.appleProdgroupId}">
<f:selectItems value="#{displayProductsBean.productGroupListDropDown}" />
</h:selectOneMenu>
</ui:repeat>
如果仍然无效,那么您需要附上<h:messages/>
以了解任何遗漏的转化/验证错误。
<h:messages />
例如,在表单提交请求期间未正确(预)初始化<f:selectItems>
后面的列表时,您可以获得“值无效”验证错误。