ser*_*nni 2 jsf combobox items
我无法使用Java集合中的预定义数据填充JSF组合框.
后端,收集的简单存根:
PriceRecord pr = new PriceRecord();
pr.setTypeCode(Arrays.asList(123L,456L));
Run Code Online (Sandbox Code Playgroud)
这不起作用,组合框保持为空:
<h:selectOneMenu value="#{price.typeCode}" var="code">
<f:selectItem value="#{code}"/>
</h:selectOneMenu>
Run Code Online (Sandbox Code Playgroud)
你给出的代码似乎没有多大意义.这个成语更像是这样的:
<h:selectOneMenu value="#{backingBean.typeCode}">
<f:selectItems value="#{backingBean.typeCodes}" var="typeCode" itemLabel="#{typeCode}" itemValue="#{typeCode}" />
</h:selectOneMenu>
Run Code Online (Sandbox Code Playgroud)
这里,#{backingBean.typeCode}是最初返回表示默认选定值的单个值的属性.如果它为空,则最初不会选择任何值.用户提交表单后,它将收到用户选择的值.对于你的代码,这将是类型Long.
#{backingBean.typeCodes}是返回用户可以选择的所有值的集合的属性.对于你的代码,这将是List<Long>.
因为您的值是简单的long,所以标签和值在这里是相同的.如果它是一个更复杂的对象,例如User,你可以使用类似于#{user.name}itemLabel和#{user.id}itemValue的东西.无论为itemValue呈现什么,都会被推入selectOneMenu组件的值绑定中.
另外一个提示:一般来说,您应该尽量避免SelectItem在后台bean中使用该类型.首选简单域对象及其集合,而不是JSF特定类型.
| 归档时间: |
|
| 查看次数: |
23545 次 |
| 最近记录: |