Мне нужно выбрать пользователя на определенный год в веб-приложении, построенном с использованием Seam 2.2, и мне было интересно, будет ли разумно использовать java Enum для построения списка вариантов года для рендеринга в интерфейсе пользователя, где пользователь выбрал бы один из них, вероятно, в элементе списка jsf h: selectOneMenu.
Как вы думаете, рекомендуется ли использовать Java Enum для создания такого рода списка?
Или я должен использовать простой список для хранения параметров?
Особое требование состоит в том, чтобы составить список текущих и прошедших 30 лет, чтобы пользователь мог выбрать один.
[] s
Как уже упоминалось в комментариях, я пошел к простому решению, используя List. Следуя коду, который я использую для этого, так как я использую Seam, я только что создал Factory, которая создает список за последние 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