Fórum Preciso de algum método para não limpar o formulário após o file estar inválido #515173

30/03/2015

0

Alguém poderia me ajudar?

Att, Leonardo
Leonardo Silva

Leonardo Silva

Responder

Posts

30/03/2015

Randrade

Poste como está o seu formulário, para que possamos lhe ajudar.
Responder

Gostei + 0

30/03/2015

Ronaldo Lanhellas

Primeiro poste o que você tem para que possamos lhe ajudar, se não fica difícil.
Responder

Gostei + 0

30/03/2015

Ronaldo Lanhellas

Primeiro poste o que você tem para que possamos lhe ajudar, se não fica difícil.
Responder

Gostei + 0

30/03/2015

Ronaldo Lanhellas

Primeiro poste o que você tem para que possamos lhe ajudar, se não fica difícil.
Responder

Gostei + 0

30/03/2015

Leonardo Silva

Desculpa gente esqueci de postar, aqui está o code:

// Enviando o email
try {

if (filesURL.size() > 0 || filesURL.size() == 0) {
//Email.sendAttachmentMailAsHTML(mailServer, "Contato Razek - Confirmação de envio de reclamação", new String[] { "****", "****" }, "***", mensagem, filesURL, filesNames);
Email.sendAttachmentMailAsHTML(mailServer, "Contato Razek - Confirmação de envio de reclamação", new String[] { "email" }, "****", mensagem, filesURL, filesNames);
Email.sendAttachmentMailAsHTML(mailServer, "Contato Razek - Confirmação de envio de reclamação", new String[] { email }, "*********", mensagem, filesURL, filesNames);


//-------Apagando os arquivos do servidor---------
String caminho = s.getRealPath("").replaceAll(Constantes.PATH, "");
for (int i=0; i<filesNames.size(); i++)
(new File(caminho + Constantes.PATH + Constantes.PATH_PUB + "files/" + filesNames.get(i))).delete();
}else {
//Email.sendSimpleMailAsHTML(mailServer, "Contato Razek - Confirmação de envio de reclamação", new String[] { "*****", "****" }, "*****", mensagem);
Email.sendSimpleMailAsHTML(mailServer, "Contato Razek - Confirmação de envio de reclamação", new String[] { "****" }, "****", mensagem);
Email.sendSimpleMailAsHTML(mailServer, "Contato Razek - Confirmação de envio de reclamação", new String[] { ****}, "*****", mensagem);

}

//contato enviado com sucesso
errors.add(ActionErrors.GLOBAL_MESSAGE, new ActionError("message.reclamacao.sent"));

saveFields = false;

// Limpa formulário
form.reset(mapping, request); //mapping
} catch (Exception e) {
e.printStackTrace();
errors.add(ActionErrors.GLOBAL_MESSAGE, new ActionError("error.emailcontato.errorsending"));
}
} // fim if




tenho um campo file que quando é incorreto ele exibe a mensagem que o tamanho não é permitido e apaga os outros campos já preenchidos
Responder

Gostei + 0

30/03/2015

Ronaldo Lanhellas

Bom, nesta checagem que você faz pelo tamanho do arquivo, você pode lançar uma exceção dizendo que o tamanho é inválido assim ele não chegará na linha form.reset, faça assim:

throw new RuntimeException("Tamanho inválido");
Responder

Gostei + 0

30/03/2015

Ronaldo Lanhellas

Bom, nesta checagem que você faz pelo tamanho do arquivo, você pode lançar uma exceção dizendo que o tamanho é inválido assim ele não chegará na linha form.reset, faça assim:

throw new RuntimeException("Tamanho inválido");
Responder

Gostei + 0

30/03/2015

Leonardo Silva

Mas os demais campos que foram preenchidos não serão apagados?

é que tudo está dentro de um form, assim:


public ActionForward perform(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {

/*aqui tem uma parte do codigo*/

/*isso esta dentro do try{}*/
form.reset(mapping, request); //mapping

/isso esta dento do actionForward/
saveErrors(request, errors); //errors
return new ActionForward("/Pagina.do?idSecao=" + idSecao);
}
Responder

Gostei + 0

30/03/2015

Leonardo Silva

não adiantou nada :/
Responder

Gostei + 0

30/03/2015

Ronaldo Lanhellas

Bom, a ideia é que ao lançar uma exceção ele não chegue no bloco de código onde é feita a limpeza do form, assim:

try{
  
if (determinada condição não for satisfeita){
  throw new RuntimeException("ERRO na validação"); //Se entrar aqui então ele vai direto ao catch e não deve limpar o formulário
}
   
form.reset(mapping, request); //mapping
}catch(Exception e){
  e.printStrackTrace();
}
Responder

Gostei + 0

30/03/2015

Ronaldo Lanhellas

Bom, a ideia é que ao lançar uma exceção ele não chegue no bloco de código onde é feita a limpeza do form, assim:

try{
  
if (determinada condição não for satisfeita){
  throw new RuntimeException("ERRO na validação"); //Se entrar aqui então ele vai direto ao catch e não deve limpar o formulário
}
   
form.reset(mapping, request); //mapping
}catch(Exception e){
  e.printStrackTrace();
}
Responder

Gostei + 0

30/03/2015

Ronaldo Lanhellas

Bom, a ideia é que ao lançar uma exceção ele não chegue no bloco de código onde é feita a limpeza do form, assim:

try{
  
if (determinada condição não for satisfeita){
  throw new RuntimeException("ERRO na validação"); //Se entrar aqui então ele vai direto ao catch e não deve limpar o formulário
}
   
form.reset(mapping, request); //mapping
}catch(Exception e){
  e.printStrackTrace();
}
Responder

Gostei + 0

30/03/2015

Leonardo Silva

Ronaldo vou tentar usar isso amanhã, desde já agradeço você pela dedicação á minha pergunta. Abraços.
Responder

Gostei + 0

30/03/2015

Ronaldo Lanhellas

Sem problemas e boa sorte.
Responder

Gostei + 0

31/03/2015

Leonardo Silva

Ronaldo o problema que não estou verificando nada dentro do try{ }. Pra verificar se o tamanho e a extensão de um file é válido ou não, eu uso apenas um if(){}.
Veja:

                                 public ActionForward perform(ActionMapping mapping, ActionForm form,
			           HttpServletRequest request, HttpServletResponse response)
			           throws IOException, ServletException {

                                  /*código*/
                                 
                                //Arquivo 1
				if (file1 != null && file1.getFileName() != null && !file1.getFileName().equals("")) { 
					//Se o tamanho do arquivo é maior que o máximo permitido
					if (file1.getFileSize() > Configuracoes.ANEXO_MAXSIZE)
						errors.add(ActionErrors.GLOBAL_MESSAGE, new ActionError("error.file.filesize"));
					//Se o arquivo não tem uma extensão permitida
					if (!((Contato)form).isArquivoPermitido(file1)){
						errors.add(ActionErrors.GLOBAL_MESSAGE, new ActionError("error.file.extension"));
					}
				}


                              /*o try apenas manda e-mails*/
                              // Enviando o email
			try {

				if (filesURL.size() > 0 || filesURL.size() == 0) {
					//Email.sendAttachmentMailAsHTML(mailServer, "Contato Razek - Confirmação de envio de reclamação", new String[] { "***", ***" }, "***", mensagem, filesURL, filesNames);
					Email.sendAttachmentMailAsHTML(mailServer, "Contato Razek - Confirmação de envio de reclamação", new String[] { "***" }, "***", mensagem, filesURL, filesNames);
					Email.sendAttachmentMailAsHTML(mailServer, "Contato Razek - Confirmação de envio de reclamação", new String[] { ***}, "***", mensagem, filesURL, filesNames);
					
					
					//-------Apagando os arquivos do servidor---------
					String caminho = s.getRealPath("").replaceAll(Constantes.PATH, "");
					for (int i=0; i<filesNames.size(); i++)
						(new File(caminho + Constantes.PATH + Constantes.PATH_PUB + "files/" + filesNames.get(i))).delete();
				}else {
					//Email.sendSimpleMailAsHTML(mailServer, "Contato Razek - Confirmação de envio de reclamação", new String[] { "***", "***" }, "***", mensagem);
					Email.sendSimpleMailAsHTML(mailServer, "Contato Razek - Confirmação de envio de reclamação", new String[] { "***" }, "***", mensagem);
					Email.sendSimpleMailAsHTML(mailServer, "Contato Razek - Confirmação de envio de reclamação", new String[] { ***}, "***", mensagem);
					
				}
				
				//contato enviado com sucesso
				errors.add(ActionErrors.GLOBAL_MESSAGE, new ActionError("message.reclamacao.sent"));

				saveFields = false;
				
				// Limpa formulário
				form.reset(mapping, request); //mapping
			} catch (Exception e) {
				e.printStackTrace();
				errors.add(ActionErrors.GLOBAL_MESSAGE, new ActionError("error.emailcontato.errorsending"));
			}

                       saveErrors(request, errors); //errors
		      return new ActionForward("/Pagina.do?idSecao=" + idSecao);
	}
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar