Duvida Com InputMask (resolvido)

5 respostas
jonasjgs2

boa tarde...
eu estou usando primefaces pela primeira vez por isso estou apanhando um pouco...rs
o meu promebla desta vez e o seguinte:
eu tenho um campo long onde guardo vários tipos de informações entre elas pode ser uma data;

ex:

private long Campo;

public long getCampo() {
    return Campo;
}

public void setCampo(long campo) {
   this.Campo = campo;
}

em um .xhtml
quando esta campo precisa ser preenchido por uma data eu utilizo o seguinte:

mask="99/99/9999" />

como faco para pegar apenas os números nesta data... pois o jsf não valida
da a mensagem: '14/05/1967' deve ser um número formado por um ou mais dígito
onde o 14/05/1967 e o valor digitado

5 Respostas

R

O campo deve ser uma data e não um long

Aqui uso assim

<p:inputMask id="data" mask="99/99/9999"
									converterMessage="Formato de data inválido."
									value="#{mb.dtSolicitacao}">
									<f:convertDateTime pattern="dd/MM/yyyy" type="date"
										dateStyle="short" timeZone="GMT-3" />
								</p:inputMask>
jonasjgs2

rockcentauro, eu sei que deve ser uma data
mas e um problema que eu tenho pra resolver…
e tem exatamente esta situacao…
eu poderia criar no managedbean ate
uma maneira de tratar isso…
eu quero achar um geito de usar apenas a mascara
e poder tratar o campo sem as barras… entendeu…
se vc tiver uma ideia eu te agradeco…

R

Dá pra usar um converter…

@FacesConverter("maskConverter")
public class MaskConverter implements Converter {

	@Override
	public Object getAsObject(FacesContext arg0, UIComponent arg1, String arg2) {
		
		if (arg2 != null && !arg2.isEmpty()) {
			
			return arg2.replaceAll("\\.|/|-|\\(|\\)|\\s", "");
		}
		
		return null;
	}	

	@Override
	public String getAsString(FacesContext arg0, UIComponent arg1, Object arg2) {
		
		if (arg2 != null && arg2 instanceof String) {
			return (String) arg2;
		}
		
		return null;
	}

}

Mas ainda não entendo o motivo deste campo ser um long…

jonasjgs2

rockcentauro, te agradeco… vou testar…

jonasjgs2

centaurock muito obrigado…
deu certo

Criado 16 de julho de 2014
Ultima resposta 16 de jul. de 2014
Respostas 5
Participantes 2