如何在f中使用枚举值:selectItem(s)我想制作一个selectOneMenu下拉列表,以便我可以在我的问题上选择一个状态。是否可以使f:selectItem更灵活,考虑到如果枚举的顺序发生变化会发生什么,以及列表是否很大?我能做得更好吗?是否可以自动“选择”问题所具有的项目?恩类public enum Status {
SUBMITTED,
REJECTED,
APPROVED}问题实体@Enumerated(EnumType.STRING)private Status status;JSF<div class="field">
<h:outputLabel for="questionStatus" value="Status" />
<h:selectOneMenu id="questionStatus" value="#{bean.question.status}" >
<f:selectItem itemLabel="Submitted" itemValue="0" />
<f:selectItem itemLabel="Rejected" itemValue="1" />
<f:selectItem itemLabel="Approved" itemValue="2" />
</h:selectOneMenu>
<hr /></div>
3 回答
浮云间
TA贡献1829条经验 获得超4个赞
对于本地化,我们也可以使用此解决方案
public enum Status { SUBMITTED, REJECTED, APPROVED }data.status.SUBMITTED=Submitteddata.status.REJECTED=Rejecteddata.status.APPROVED=Approved<h:selectOneMenu value="#{bean.question.status}" > <f:selectItems value="#{data.statuses}" var="status" itemValue="#{status}" itemLabel="#{text['data.status.'.concat(status)]}" /></h:selectOneMenu>
因此,本地化字符串的资源路径在Enum中不是硬编码的。
ITMISS
TA贡献1871条经验 获得超8个赞
您可以使用 <f:selectItems value="#{carBean.carList}" />
并返回SelectItem
包装枚举的实例列表(用于Status.values()
获取所有可能的值)。
添加回答
举报
0/150
提交
取消