por favor, alguém saberia me dizer como faço máscara de validação de CPF, CNPJ, telefone, CEP, e-mail com Spring MVC? tem alguma anotation que faça isso?
Obrigada.
por favor, alguém saberia me dizer como faço máscara de validação de CPF, CNPJ, telefone, CEP, e-mail com Spring MVC? tem alguma anotation que faça isso?
Obrigada.
Olá Lilian tudo bem?
O Spring
só ira fazer as validações do lado do servidor(back-end
) não irá gerar mascaras ou validações no lado do cliente (front-end
).
Para fazer essas validações você pode utilizar alguma implementação da especificação de beans validation
como o Hibernate Validator
(por exemplo), desta forma você pode anotar seus atributos das suas classes de modelo com as seguintes anotações:
@Email
, @CPF
, @CNPJ
Para CEP e Telefone você pode usar a anotação @Pattern
que recebe uma expressão regular:
@Pattern("\\d{5}-\\d{3})
para cep,
@Pattern("(\\d{2}) \\d{4}-\\d{4}")
para telefone.
Porém essa validação será executada no back-end
não vai colocar nenhuma mascara no front-end
.
Para colocar validações no front-end
você pode usar o atributo pattern
das tags
input
e declarar o padrão nela.
E se você precisar de mascara nos campos você pode usar alguma biblioteca como por exemplo jquery-mask
.
Espero ter ajudado!
Fernando, obrigada!
estou usando as anotations conforme me falou,
no front, acontece a validação do CNPJ e Email igual o curso ensinou da data, simplesmente ele apresenta a mensagem de CNPJ ou e-mail inválido, isso mesmo que eu quero!
Mais para o CPF o que deveria acontecer o mesmo, ele está apresentando uma exception em tela:
HTTP Status 500 - Request processing failed; nested exception is javax.validation.ConstraintViolationException: Validation failed for classes [br.com.projeto.cuidandodaatencao.model.Professor] during persist time for groups [javax.validation.groups.Default, ]
type Exception report
message Request processing failed; nested exception is javax.validation.ConstraintViolationException: Validation failed for classes [br.com.projeto.cuidandodaatencao.model.Professor] during persist time for groups [javax.validation.groups.Default, ]
description The server encountered an internal error that prevented it from fulfilling this request.
exception
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is javax.validation.ConstraintViolationException: Validation failed for classes [br.com.projeto.cuidandodaatencao.model.Professor] during persist time for groups [javax.validation.groups.Default, ]
List of constraint violations:[
ConstraintViolationImpl{interpolatedMessage='CPF inválido', propertyPath=CPF, rootBeanClass=class br.com.projeto.cuidandodaatencao.model.Professor, messageTemplate='{org.hibernate.validator.constraints.br.CPF.message}'}
]
há um outro método de fazer com que essa exception seja tratada como uma mensagem pelo front end?
obs.: também utilizei o input pattern como me indicou e acontece a mesma coisa.
Obrigada
Olá Lilian tudo bem?
Que bom que algumas coisa já funcionaram,
Tem como você postar o código aqui para eu tentar entender melhor o que está ocorrendo no código?
Olá Fernando, tudo bem e você?
a mensagem apresentada está correta, pois está validando o CPF, porém também não valida no front como o CNPJ e e-mail
segue um pedaço da JSP:
<div class="form-group">
<label>C.P.F</label>
<form:input path="CPF" cssClass="form-control" />
<form:errors path="CPF" />
</div>
classe POJO professor
@CPF
private String CPF;
mensagem apresentada :
HTTP Status 500 - Request processing failed; nested exception is javax.validation.ConstraintViolationException: Validation failed for classes [br.com.projeto.cuidandodaatencao.model.Professor] during persist time for groups [javax.validation.groups.Default, ]
type Exception report
message Request processing failed; nested exception is javax.validation.ConstraintViolationException: Validation failed for classes [br.com.projeto.cuidandodaatencao.model.Professor] during persist time for groups [javax.validation.groups.Default, ]
description The server encountered an internal error that prevented it from fulfilling this request.
exception
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is javax.validation.ConstraintViolationException: Validation failed for classes [br.com.projeto.cuidandodaatencao.model.Professor] during persist time for groups [javax.validation.groups.Default, ]
List of constraint violations:[
ConstraintViolationImpl{interpolatedMessage='CPF inválido', propertyPath=CPF, rootBeanClass=class br.com.projeto.cuidandodaatencao.model.Professor, messageTemplate='{org.hibernate.validator.constraints.br.CPF.message}'}
]
sobre o telefone... quando insiro o pattern na jsp, no front está aparecendo a mensagem padrão do HTML 5 "é preciso que o formato corresponda ao exigido", quando digito o padrão correto, qualquer padrão de telefone não é identificado
ocorre o mesmo para o cep.
JSP:
<div class="form-group">
<label>Telefone</label>
<form:input path="telefone" pattern="(\\d{2})\\d{4}-\\d{4}$" cssClass="form-control" />
<form:errors path="telefone" />
</div>
classe POJO professor:
@Pattern(regexp="(\\d{2})\\d{4}-\\d{4}$")
private String telefone;
Obrigada