Formulário de cadastro com JSF e Bootstrap
Aprenda neste exemplo como criar interfaces ricas com Bootstrap e JSF. Saiba como o Pass-through elements pode te ajudar a ter mais controle sobre o HTML gerado pelos componentes nativos. Veja também como aplicar máscaras e validação front-end através da jQuery e plugins conhecidos como jQuery Validade e jQuery Mask Edit.
Projeto já adicionado aos favoritos. Clique aqui para ver todos seus favoritos
Obrigado pela sua avaliação, deixe o seu feedback nos comentários :D
Entidade Cadastro
Cadastro é a classe que modela as informações recebidas do formulário. A partir dela realizaremos validações no back-end na camada de modelo e persistiremos os dados no banco caso tudo esteja de acordo. Para estas duas tarefas, utilizamos anotações tanto da JPA, para persistência, quanto da Bean Validation, para validação. Essas anotações são melhor detalhadas abaixo:
JPA
- @Entity -A anotação @Entity é utilizada para informar que uma classe também é uma entidade. A partir disso, a JPA estabelecerá a ligação entre a entidade e uma tabela de mesmo nome no banco de dados, onde os dados de objetos desse tipo poderão ser persistidos.
- @Id -É com essa anotação que informamos à JPA qual campo/atributo de uma entidade estará relacionado à chave primária da respectiva tabela no banco de dados. Essa é uma anotação obrigatória e um erro será gerado em tempo de execução caso ela não esteja presente.
- @GeneratedValue -Essa anotação, por sua vez, informa que a geração do valor do identificador único da entidade será gerenciada pelo provedor de persistência, nesse caso o Hibernate. Essa anotação deve ser adicionada logo após a anotação @Id. Quando não anotamos o campo com essa opção, significa que a responsabilidade de gerar e gerenciar as chaves primárias será da aplicação.
- @Temporal -Utilizada sobre os tipos java.util.Date e java.util.Calendar devido as muitas representações das datas disponíveis em bancos de dados, como Date, DateTime e Timestamp. A partir dessa anotação especificamos explicitamente qual dentre estas representações será utilizada pela aplicação. Para a propriedade value dessa anotação, informamos um dos valores obtidos da enum TemporalType. TemporalType.DATE fará com que o campo seja mapeado para java.sql.Date, TemporalType.TIME mapeará o campo para java.sql.Time e TemporalType.TIMESTAMP fará com a representação seja equivalente a java.sql.Timestamp.
- @Enumerated -Algumas vezes pode ser desejado mapear uma enum para uma coluna. Na JPA essa conversão é realizada pela anotação @Enumerated. A forma como o valor será persistido, como um inteiro representando a posição do valor na enum ou como uma string que representa seu nome, é indicado pela presença de um dos valores EnumType.ORDINAL ou EnumType.STRING.
Bean Validation
- @DecimalMin -O valor do campo ou propriedade deve ser um valor decimal maior que ou igual ao número informado no elemento value.
- @Min -O valor do campo ou propriedade deve ser um inteiro maior que ou igual ao valor especificado no elemento value.
- @NotNull -O valor do campo ou propriedade não deve ser nulo
- @Size -O comprimento do campo ou propriedade será avaliado e deve corresponder aos limites especificados. Se o campo ou propriedade é uma String, seu número de caracteres será avaliado. Se o campo ou propriedade é um Collection, Map ou array, o total de itens será avaliado. Usamos os elementos opcionais min e max para especificar esses limites.
Também utilizamos algumas anotações específicas do Hibernate Validator, são elas:
- @NotBlank -Valida se a string anotada não é nula ou vazia. Espaços em branco em seu início e fim serão ignorados.
- @CPF -Valida o documento nacional CPF, Cadastro de Pessoa Física.