Pessoal, comecei a estudar JSF por conta própria e estou apanhando bastante para encontrar o caminho das pedras.
Sou “zerado” neste framework e não encontrei no fórum nada semelhante à minha dúvida:
Basicamente, quero “transformar” uma sequência de 8 dígitos em data (12345678 —> 12/34/5678 ).
Quero fazer o usuário digitar uma data, mas apenas com números em um campo da página, ou seja, oito dígitos.
Exemplo: dia 25/05/2012 seria 25052012.
- Aquilo que o usuário digitar (25052012) vou salvar em um atributo do ManagedBeanJSF, mas claro, vou verificar antes se existe só dígitos e também se existe só oito dígitos;
- Depois, quero exibir a data formatada corretamente (25/05/2012, apenas para visualização na web) em uma página JSF de confirmação;
- Só quero data pura, não preciso da hora, minutos, segundos, timezone, etc;
- Não vou usar JavaScript nem JQuery;
- Não tem banco de dados, é só para eu aprender a usar os recursos do framework e estudar.
No ManagedBeanJSF não importa muito o tipo de dado para a data, ou seja, o atributo data poderia ser um int, String ou Date.
Na página JSF, tudo o que é digitado vem como String, mas como acham que é melhor fazer no ManagedBeanJSF? int, String ou Date?
Como posso fazer essa conversão / validação / formatação / exibição, tanto para salvar no ManagedBean quanto para exibição na tela?
O que tentei fazer até agora (as linhas 3 e 4 estão comentadas, mas as outras também não deram muito certo):
<h:inputText value="#{meuBean.login}" required="true" size="15" maxlength="8" >
<f:validateLength minimum="8" />
<!--<f:convertNumber type="number" minIntegerDigits="8" />-->
<!--<f:convertNumber type="number" integerOnly="true" minIntegerDigits="8" maxIntegerDigits="8"/>-->
<f:convertDateTime pattern="ddMMyyyy" type="date" />
</h:inputText>
Obrigado pessoal!