【问题标题】:Setting value of a h:selectOneMenu from a for each为每个设置一个 h:selectOneMenu 的值
【发布时间】:2012-01-16 13:37:27
【问题描述】:

这是每个迭代产品列表的方法,我需要在下面的下拉列表中设置 productGroupId。

 <c:forEach items="${productgroup.productList}" var="product">

 <h:selectOneMenu  value="${product.appleProdgroupId}">
<f:selectItems value="#{displayProductsBean.productGroupListDropDown}"/>
</h:selectOneMenu>

我已经尝试了所有的组合,但它不起作用......谁能帮忙

【问题讨论】:

  • 即使我使用 ${product.appleProdgroupId} 从 for each 打印值,我得到了正确的值但无法选择我的下拉列表...实际上我是 JSF 的新手.. .有人请帮我解决这个问题....

标签: java jsf-2 jstl


【解决方案1】:

目前还不清楚“它不起作用”到底是什么意思。在到目前为止发布的代码中,我看到至少 3 个可能的原因:

您的第一个问题是您需要使用 #{} 语法而不是 ${} 语法,以便能够在范围内尚不存在托管 bean 时自动创建它们。

<c:forEach items="#{productgroup.productList}" var="product">
    <h:selectOneMenu value="#{product.appleProdgroupId}">
        <f:selectItems value="#{displayProductsBean.productGroupListDropDown}" />
    </h:selectOneMenu>
</c:forEach>

您的第二个问题可能是&lt;c:forEach&gt;,但这取决于运行此代码的上下文。 &lt;c:forEach&gt; 即视图构建时间标签。如果上述方法不起作用,则需要 &lt;ui:repeat&gt;

<ui:repeat value="#{productgroup.productList}" var="product">
    <h:selectOneMenu value="#{product.appleProdgroupId}">
        <f:selectItems value="#{displayProductsBean.productGroupListDropDown}" />
    </h:selectOneMenu>
</ui:repeat>

如果这仍然不起作用,那么您需要附加 &lt;h:messages/&gt; 以了解任何缺少的转换/验证错误。

<h:messages />

例如,当&lt;f:selectItems&gt; 后面的列表在表单提交请求期间未正确(预)初始化时,您可能会收到“值无效”验证错误。

另见:

【讨论】:

  • 我试过使用 value="#{product.appleProdgroupId}" 但它不起作用.....
  • 然后继续阅读我的答案的残余。另一方面,您也可以尝试更具体地描述具体问题,而不是说“它不起作用”。当您的汽车下方有一个爆胎时,您也不会对汽车修理工说“它不工作”。
  • 让我描述一下我的问题的整个设计。在我的托管 bean 中,我有一个产品组对象列表。每个产品组对象都包含一个产品对象列表。现在我需要显示所有产品在数据表中进行分组并为他们提供内联编辑的工具。现在我正在使用 for each 来迭代托管 bean 中存在的产品组列表。
  • 那么,它是循环中的循环吗?您不能将&lt;c:forEach&gt; 用作循环的内循环,该循环将由&lt;h:dataTable&gt; 等JSF 组件生成。请改用&lt;ui:repeat&gt; 或另一个&lt;h:dataTable&gt;,或者例如&lt;t:dataList&gt;。长话短说:阅读“另请参阅”链接以更好地了解 JSTL 标记的工作原理。
  • 是的,确实是循环内的循环。但是当我使用 ${product.appleProdgroupId} 时,我得到了所需的值,但是无法将其设置为选择菜单的值标签
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-28
  • 2020-05-15
  • 2012-02-05
相关资源
最近更新 更多