如何在f中使用枚举值:selectItem(s)

如何在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>


慕姐4208626
浏览 690回答 3
3回答

浮云间

对于本地化,我们也可以使用此解决方案public&nbsp;enum&nbsp;Status&nbsp;{&nbsp;SUBMITTED,&nbsp;REJECTED,&nbsp;APPROVED&nbsp;}data.status.SUBMITTED=Submitteddata.status.REJECTED=Rejecteddata.status.APPROVED=Approved<h:selectOneMenu&nbsp;value="#{bean.question.status}"&nbsp;> &nbsp;&nbsp;&nbsp;&nbsp;<f:selectItems &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value="#{data.statuses}" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var="status" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;itemValue="#{status}" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;itemLabel="#{text['data.status.'.concat(status)]}"&nbsp;/></h:selectOneMenu>因此,本地化字符串的资源路径在Enum中不是硬编码的。

ITMISS

您可以使用&nbsp;<f:selectItems value="#{carBean.carList}" />并返回SelectItem包装枚举的实例列表(用于Status.values()获取所有可能的值)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java