Criando uma coleção de Ano

3 respostas
V

Boa Tarde a todos,

Estou criando uma coleção de Anos e gostaria de fazer isso dinamicamente.
Vou tentar explicar o mecanismo da coisa.
Preciso criar uma coleção com Ano, onde a coleção comece com o ano de 2006 + Ano Atual + 10 anos para frente.
Exemplo: Irei carregar um combo com os seguintes valores: 2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2016,2017,2018,2019.
Quando a página é carregada, a combo irá vir com o ano atual selecionado. E a medida que os anos forem se passando, os anos vão aumentando.
A outra pergunta que faço é, onde coloco esse array de ano?
Estou usando Struts 1.3, teria que chamar isso na Action?

Desde já agradeço,
Vitor Bonfim

3 Respostas

sergiotaborda

vitorbonfim:
Boa Tarde a todos,

Estou criando uma coleção de Anos e gostaria de fazer isso dinamicamente.
Vou tentar explicar o mecanismo da coisa.
Preciso criar uma coleção com Ano, onde a coleção comece com o ano de 2006 + Ano Atual + 10 anos para frente.
Exemplo: Irei carregar um combo com os seguintes valores: 2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2016,2017,2018,2019.
Quando a página é carregada, a combo irá vir com o ano atual selecionado. E a medida que os anos forem se passando, os anos vão aumentando.
A outra pergunta que faço é, onde coloco esse array de ano?
Estou usando Struts 1.3, teria que chamar isso na Action?

Sim. Mas vc usa uma Collection, não um array.

public YearList extends AbstractList<Integer> {

   public YearList  (int startYear, int range){

        for ( int  i =0 ; i < range +1 ; i++){
             this.add(startYear + i);
        }

   }

   public int getCurrent(){
           return new GregorianCalendar().get(Calendar.YEAR);
   }
}

uso

// na action
request.setAttribute("years" , new YearCollection());
// no jsp
<select>
<c:forEach items="${years}" var="year">
   <option value="${item} />
</c:forEach>
</select>
V

Muito Obrigado Sergio!!!

Tenho uma outra pergunta, essa classe YearList eu uso no meu Bean?

Obrigado!

sergiotaborda

vitorbonfim:
Muito Obrigado Sergio!!!

Tenho uma outra pergunta, essa classe YearList eu uso no meu Bean?

Como assim usa no bean ? Se vai ter um campo do tipo YearList ? não.
Se vai poder utilizar a classe para validações e calculos,sim.

por exemplo, para validar o submit vc faz

int year = .. lê do request.

if(!new YearList.contains(year)){
     // erro. passou ano fora do intervalo permitido.
}
Criado 26 de novembro de 2009
Ultima resposta 26 de nov. de 2009
Respostas 3
Participantes 2