Olá desenvolvedores, no tutorial de hoje iremos trabalhar com a caixa de seleção checkbox que é um elemento de interface gráfica. O checkbox possui três estados, verificado, não verificado e indefinido. Normalmente esta caixa de seleção ou verificação é utilizado quando é permitido ao usuário selecionar mais de uma opção. Mas neste caso iremos verificar se o usuário cadastrado está ativo ou inativo.
Assim na página cadastroUsuario, na mesma linha do campo do IBGE, porém em uma nova célula, iremos inserir o checkbox.
Desse modo a página de cadastro após a implementação do checkbox ficará como mostrado abaixo.
TRABALHANDO O CHECKBOX DO LADO DO SERVIDOR
Então agora, para trabalharmos o checkbox do lado servidor precisamos descobrir que valor é percebido pela nossa aplicação quando ele está ativo ou inativo.
Desse modo, para sabermos este valor precisaremos debugar. Assim na servlet Usuário.java no doPost, que é o método responsável pelo envio das requisições implementaremos o método System.out.println(), que receberá como parâmetro o id do checkbox.
Com o método System.out.println() implementado poderemos também observar no console o valor que será gravado na base de dados quando a caixa de seleção estiver ativa. Dessa forma, quando o checkbox está ativo o valor recebido é “on”, e quando inativo o valor é “null”.
De posse dessas informações, criaremos na classe do objeto usuário, a BeanCursoJsp, um atributo para a caixa de seleção. Implemente também os métodos set e get.
Private boolean ativo;
E agora, na servlet Usuario.java faremos a verificação do parâmetro para “setarmos” o valor recebido no objeto. Assim, se o parâmetro recebido pela requisição for diferente de nulo e corresponder ao estado verificado (ativo), o valor será atribuído ao usuário.
Mas se não, se o parâmetro recebido pela requisição corresponder ao estado não verificado (inativo), o valor não será atribuído ao usuário, e o argumento passado será false.
IMPLEMENTANDO A CLASSE DE CONEXÃO
E na classe de conexão DAO – Data Access Object, no insert passaremos o parâmetro. Lembrando que estamos mostrando apenas o parâmetro da implementação em questão, mas a Query implementa todos os demais parâmetros.
String sql = “INSERT INTO usuario(.., ativo) VALUES (..., ?)”;
O próximo passo é a implementação ainda no DAO, da sequência do parâmetro que será gravada no banco de dados.
Insert.setBoolean(16, usuario.isAtivo());
MÉTODO ATUALIZAR
Se você nos acompanha ou é aluno do Formação Java Web, deve se lembrar que no método atualizar() quando inserimos uma imagem ou outro tipo de arquivo foi preciso identificar a posição que a imagem seria “setada” na base de dados. E para isso implementamos uma série de validações.
Por este motivo não podemos inserir o parâmetro em qualquer posição. E como a validação deverá ser sempre a última coisa, vamos inserir logo após o campo do IBGE.
E assim “setaremo”s para o preparedStatement na posição 11 o parâmetro que veio do objeto, da servlet Usuario,java.
preparedStatement.setBoolean(11, usuario.isAtivo());
E nas validações logo abaixo, precisaremos andar uma posição em cada uma delas, para evitarmos erro de consistência da base de dados.
CRIANDO CAMPO NA BASE DE DADOS
E claro, precisaremos criar na tabela usuario a coluna “Ativo” correspondente ao checkbox. No banco de dados clique com o botão direito sobre columns na base de dados da sua aplicação >> New Column… Em Name coloque “ativo”, o Data type é “boolean”.
EM POUCAS PALAVRAS
Então agora podemos determinar o estado do usuário em nossa aplicação, esta implementação abre margem para muitas outras verificações. Como por exemplo, em um relatório trazer todos os usuários inativos do sistema e assim proceder com a exclusão dos mesmos. Enfim, são muitas as possibilidades, eu fico por aqui e nós nos vemos no próximo tutorial.