[RESOLVIDO]Não salvar mascara primefaces

7 respostas
H

Pessoal, tudo bem?
Ao salvar um campo com máscara o mesmo está sendo salvo no banco com a mascara. Tem como deixar a mascara apenas
para edição e não salvar no banco?

<h:outputText value="#{cnpj}" /> <p:inputMask value="#{cliente.cnpj}" mask="99.999.999/9999-99" size="20"/>

Está sendo salvo: 12.345.678/1111-52, preciso que seja salvo 12345678111152.

Abraço,

7 Respostas

H

Pq você nao usa um string replace no MB?

H

Tem um exemplo pra me ajudar?

H

hmenon1989:
Tem um exemplo pra me ajudar?
Toda String tem o método replace.
No seu MB faça por exemplo. cnpj.replaceAll("\D", “”);

Se não me engano é replaceAll mesmo.

H

Embora funcione, seria errado fazer assim na definição da classe?

public void setCnpj(String cnpj) { this.cnpj = cnpj.replaceAll("\\.","").replaceAll("\\/","").replace("-",""); }

R

hmenon1989:
Embora funcione, seria errado fazer assim na definição da classe?

public void setCnpj(String cnpj) { this.cnpj = cnpj.replaceAll("\\.","").replaceAll("\\/","").replace("-",""); }


O sistema é seu, fica a seu critério saber até onde isso impacta, agora que replace doido é esse? Por que não usa o do Hébert? Vai ter o mesmo resultado.

H

hmenon1989:
Embora funcione, seria errado fazer assim na definição da classe?

public void setCnpj(String cnpj) { this.cnpj = cnpj.replaceAll("\\.","").replaceAll("\\/","").replace("-",""); }

Eu só dei uma solução, vc encontrou outra e podem existir diversas outras por ae. [=
Concordo com o digão quando ele fala que a outra é melhor, fica mais legível.
O problema é que ela utiliza regex, então a pessoa que der manutenção, tem que saber oq é. [=

H

Hebert Coelho:
hmenon1989:
Embora funcione, seria errado fazer assim na definição da classe?

public void setCnpj(String cnpj) { this.cnpj = cnpj.replaceAll("\\.","").replaceAll("\\/","").replace("-",""); }

Eu só dei uma solução, vc encontrou outra e podem existir diversas outras por ae. [=
Concordo com o digão quando ele fala que a outra é melhor, fica mais legível.
O problema é que ela utiliza regex, então a pessoa que der manutenção, tem que saber oq é. [=

Beleza, entendi. O que eu quis enfocar foi colocar no set ao invés de no MB não a forma de fazer o replace em si, pois vou usar essa sugestão mesmo: cnpj.replaceAll("\D", “”),
pois é mais legivel; e a que coloquei tá doidona.

Criado 26 de setembro de 2012
Ultima resposta 26 de set. de 2012
Respostas 7
Participantes 3