Olá desenvolvedores, o tutorial de hoje traz uma dica, o type reset do JSF – JavaServer Faces. Entre os vários motivos parasse usar o type reset, a boa prática de sempre limpar o formulário após a submissão é um deles.
No entanto, há mais por traz da motivação em utilizar um botão para limpar o formulário. Quando enviamos um formulário para a submissão, o próprio JSF se encube da tarefa de limpar o estado de cada componente. Quando o JSF cumpre a sua tarefa o componente é renderizado com o estado dos atributos dos maneged beans.
No entanto, se após a submissão uma falha de validação ocorrer, os componentes de entrada manterão seus valores locais, ou seja, ficarão em um estado de inconsistência. Um estado que não reflete os valores atuais do maneged beans. Assim, para limpar os valores em cache utilizamos o type reset, se não o fizermos informações desatualizadas poderão em dado momento vir a ser exibidas para o usuário da aplicação.
Vale ressaltar que todos os componentes de uma página são armazenados em uma estrutura de árvore chamada de “árvore de componentes”. Significa que quando utilizamos uma única página física do XHTML, caso muito comum quando se trabalha com formulários, estamos repetidamente usando a mesma árvore de componentes.
A reutilização da mesma árvore de componentes pode resultar em um objeto com um estado inválido, repito, um estado que não reflete seu valor real. E este poderá vir a ser exibido par ao usuário em tela.
IMPLEMENTANDO UM TYPE RESET
Para criarmos um botão para limpar o formulário, crie um componente h:commandButton, cujo value recebe o valor “limpar” e defina seu tipo como “reset”.
<h:commandButton value=”limpar” type=”reset” />
Mas atente-se para o fato de que este botão só se aplica ao contexto de falha no envio do formulário para submissão, ou ainda quando o formulário está sendo preenchido.
Quando você coloca um objeto em edição, por exemplo, o escopo desse objeto é de “view”, neste cenário o botão de “reset” não irá funcionar. Mas por que? Porque os dados, que neste caso refletem os valores atuais do maneged beans estão sendo mantidos na tela pelo objeto.
EM POUCAS PALAVRAS
A implementação de um type reset é absurdamente simples, mas o que você realmente precisa saber é porque usá-lo com qual motivação você irá implementá-lo. E esta implementação exemplifica de maneira a não deixar dúvidas a importância de saber o porquê das tomadas de decisão no processo de desenvolvimento da sua aplicação.