Boa noite pessoal, venho aqui pedir ajuda a vocês para me ajudar a resolver o seguinte problema:
Tenho uma página JSP que possui um formulário com alguns campos text, um radio, vários checkbox e um input file para fazer o upload do arquivo.
Depois de muita pesquisa descobri a API da apache para upload, e também que para que seja possível realizar a operação de transmissão do arquivo tenho que colocar enctype=“multipart/form-data” na tag .
A parte de upload do arquivo esta funcionando corretamente, depois de muita pesquisa também descobri como pegar o valores dos campos text, do radio e o caminho completo de onde o arquivo esta gravado e salvando os mesmo no banco.
Minha dúvida agora é como faço para pegar os valores dos vários checkbox sem utilizar request.getParameterValues
?
Antes eu fazia assim para pegar os valores e gravar no banco:
private void processarRequisicao(HttpServletRequest request, HttpServletResponse response)
throws Exception {
String nome = request.getParameter("nome");
String email = request.getParameter("email");
String telefone = request.getParameter("telefone");
String sexo = request.getParameter("sexo");
String experiencia = request.getParameter("experiencia");
String mensagem = request.getParameter("mensagem");
String arquivo = request.getParameter("curriculo");
Curriculo curriculo = new Curriculo();
curriculo.setNome(nome);
curriculo.setEmail(email);
curriculo.setTelefone(telefone);
curriculo.setSexo(sexo);
curriculo.setExperiencia(experiencia);
curriculo.setMensagem(mensagem);
curriculo.setArquivo(arquivo);
CurriculoDAO curriculoDAO = new CurriculoDAOJDBC();
curriculoDAO.inserir(curriculo);
//Pega os valores dos checkbox e inseri nos arrays
String [] conhecimentos = request.getParameterValues("conhecimento");
if(conhecimentos != null) {
CurriculoConhecimentosDAO conhecimentosDAO = new CurriculoConhecimentosJDBC();
int codigoCurriculo = curriculoDAO.recuperarUltimoCurriculoCadastrado();
//Percorrer o array e atribui o valor a variável código para gravar o código na tabela curriculos_conhecimentos
for (String conhecimento : conhecimentos) {
int codigo = Integer.parseInt(conhecimento);
conhecimentosDAO.inserir(codigoCurriculo, codigo);
}
}
response.sendRedirect("sucesso.jsp");
}
Com a implementação do upload:
private void processarRequisicao(HttpServletRequest request, HttpServletResponse response)
throws Exception {
String nome = null;
String email = null;
String telefone = null;
String sexo = null;
String experiencia = null;
String mensagem = null;
String arquivo = null;
DiskFileUpload fu = new DiskFileUpload();
List fileItems = fu.parseRequest(request);
Iterator itr = fileItems.iterator();
while (itr.hasNext()) {
FileItem fi = (FileItem) itr.next();
if (!fi.isFormField()) {
System.out.println("Nome: " + fi.getName());
System.out.println("Tamanho: " + fi.getSize());
File fNew = new File("//Users//leocantanhede//Documents//temp//", fi.getName());
arquivo = fNew.getAbsolutePath();
System.out.println(fNew.getAbsolutePath());
fi.write(fNew);
} else {
//Pega os valores dos campos do jsp e associa as variáveis, exceto os dos checkbox
if(fi.getFieldName().equals("nome")) {
nome = fi.getString();
}
if(fi.getFieldName().equals("email")) {
email = fi.getString();
}
if(fi.getFieldName().equals("telefone")) {
telefone = fi.getString();
}
if(fi.getFieldName().equals("sexo")) {
sexo = fi.getString();
}
if(fi.getFieldName().equals("experiencia")) {
experiencia = fi.getString();
}
if(fi.getFieldName().equals("mensagem")) {
mensagem = fi.getString();
}
}
}
Curriculo curriculo = new Curriculo();
curriculo.setNome(nome);
curriculo.setEmail(email);
curriculo.setTelefone(telefone);
curriculo.setSexo(sexo);
curriculo.setExperiencia(experiencia);
curriculo.setMensagem(mensagem);
curriculo.setArquivo(arquivo);
CurriculoDAO curriculoDAO = new CurriculoDAOJDBC();
//Inseri um currículo na tabela curriculos, sem os checkbox
curriculoDAO.inserir(curriculo);
response.sendRedirect("sucesso.jsp");
}
Como faço para recuperar os valores dos checkbox ?
Fico no aguardo da ajuda de vocês, abraço a todos.