3.4 Pessoa.java (Classe que representa o JavaBean)

package br.aiec;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

public class Pessoa {

    private String nome;
    private Date dataNascimento;

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public Date getDataNascimento() {
        return dataNascimento;
    }

    public void setDataNascimento(Date dataNascimento) {
        this.dataNascimento = dataNascimento;
    }
    
    /**
   * Método que recebe a dataNascimento no formato String dd/MM/yyyy e transforma no tipo adequado.
   * 
   * @param dataNascimento
   * @throws ParseException
   */
    public void setDataNascimentoString(String dataNascimento) throws ParseException {
        SimpleDateFormat sf = new SimpleDateFormat("dd/MM/yyyy");
        this.dataNascimento = sf.parse(dataNascimento);
    }
    
    /**
   * Esse método retorna a data formatada (tipo String)
   * 
   * @return Data no formato dd/MM/yyyy
   * @throws ParseException
   */
    public String getDataNascimentoString() throws ParseException {
        SimpleDateFormat sf = new SimpleDateFormat("dd/MM/yyyy");
        return sf.format(dataNascimento);
    }
        
    
    public int getIdade(){
        Calendar hoje = GregorianCalendar.getInstance();
        hoje.setTime(new Date());
        
        Calendar nascimento = GregorianCalendar.getInstance();
        nascimento.setTime(dataNascimento);
        
        int quantidadeAnos = hoje.get(Calendar.YEAR) - nascimento.get(Calendar.YEAR);
        
        nascimento.add(Calendar.YEAR, quantidadeAnos);
        
        if(nascimento.after(hoje)){
            quantidadeAnos--;
        }
        
        return quantidadeAnos;
    }

}

Observe que a classe Pessoa teve que incorporar os métodos de conversão/formatação da data. Isso foi necessário, pois todo o código de scriptlet foi retirado da página “BeanPessoaLivroVisitas.jsp”. No próximo módulo, utilizaremos as tags específicas da JSTL para formatar a data sem scriptlets. Por ora, manteremos, temporariamente, a referida funcionalidade na classe “Pessoa”.

Copyright © 2014 AIEC.