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:
[code]private long Campo;
public long getCampo() {
return Campo;
}
public void setCampo(long campo) {
this.Campo = campo;
}
[/code]
em um .xhtml
quando esta campo precisa ser preenchido por uma data eu utilizo o seguinte:
<p:inputMask value={"#controle.Campo"}
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
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>
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…
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…
rockcentauro, te agradeco… vou testar…
centaurock muito obrigado…
deu certo