有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

我应该使用Java枚举获取特定年份的用户吗?

我需要在使用Seam 2.2构建的web应用程序中获取特定年份的用户,我想知道使用java枚举来构建要在前端呈现的年份选择列表是否合理,用户可以在前端选择其中一个,可能是在jsf h:selectOneMenu列表元素中

那么,您认为建议使用java枚举来构建此类列表吗

或者我应该使用一个简单的列表来保存选项

具体要求是建立一个当前和过去30年的列表,以便用户选择一个

[]s

正如我在评论中提到的,我使用列表找到了一个简单的解决方案。遵循我使用的代码,因为我使用Seam,我刚刚构建了一个工厂,它构建了过去50年的列表,而在xhtml中我引用了它,并在组合列表中显示给最终用户从中选择

工厂代码:

    @Factory("listaUltimos50Anos")
    public List<Integer> listaUltimos50Anos()
    {
        ArrayList<Integer> ultimos50Anos = new ArrayList<Integer>();
        GregorianCalendar hoje = new GregorianCalendar();
        hoje.setTime(new java.util.Date());
        int anoAtual = hoje.get(Calendar.YEAR);
        for(int i = 0; i <= 50; i++)
        {
            ultimos50Anos.add(anoAtual);
            anoAtual -= 1;
        }
        return ultimos50Anos;
    }

在xhtml中,我引用了这个工厂:

<s:decorate id="dataField" template="../layout/edit.xhtml">
    <ui:define name="label">Ano</ui:define>
    <h:selectOneMenu id="ano" value="#{carroHome.instance.ano}" required="true">
        <s:selectItems var="anos" value="#{listaUltimos50Anos}" label="#{anos}" />
    </h:selectOneMenu>
</s:decorate> 

[]s


共 (2) 个答案

  1. # 1 楼答案

    你为什么要列举一组相等的数字

    enum的目的是为了提高效率和可读性,将一些本质上非数字的东西(如状态码或状态码)转换为数字(尽管我一直认为可读性参数是可疑的)。另一个常见且有效的用途是将一组分散的数字(如sql代码)转换为一个更简单的数字序列

  2. # 2 楼答案

    我只需要创建一个简单的整数列表,从currentYear-30到currentYear。。 今年迭代,创建选项列表,值=当前迭代