Comparar parametros de formulário com Strings

7 respostas
F

Boa Tarde!

Minha dúvida acredito ser simples…

Meu formulário possui estas linhas:

<form action="/TCC/defineArquivo" method="post"> <label>Modelo 01</label><input type="radio" name="layout" value="1"> <label>Modelo 02</label><input type="radio" name="layout" value="2">

O meu Servlet defineArquivo é assim:

String escolha = request.getParameter("layout"); if(escolha == "1"){ CopiaConteudo copiar = new CopiaConteudo(); copiar.CopiaConteudoArquivo1(); }

Mas o problema é que a comparação não dá certo. Se eu exibir na tela:
out.println("Layout escolhido é: " + escolha);

Vai imprimir o valor 1…
Mas se eu pedir para fazer qualquer coisa se o valor for 1, ele não realiza… parece que a comparação if(escolha == “1”) não dá certo…

Aguardo… obrigado

7 Respostas

felipedamiani
# Integer escolha = Integer.parseInt(request.getParameter("layout"));  
#         if(escolha == 1){  
#             CopiaConteudo copiar = new CopiaConteudo();  
#             copiar.CopiaConteudoArquivo1();          
#         }

ou

# String escolha = request.getParameter("layout");  
#         if(escolha.equals("1")){  
#             CopiaConteudo copiar = new CopiaConteudo();  
#             copiar.CopiaConteudoArquivo1();          
#         }
T

Use equals, não ==, para comparar strings.

if(escolha.equals("1")){

ou (preferido)

if("1".equals(escolha)){
L

O operador == nao funciona com String…

utilize o codigo:

escolha .equals("1")

vai funcionar

H

Não utilize assim escolha .equals(“1”) é preferivel fazer como o thingol mencionou anteriormente
“1”.equals(escolha) pois, se sua variável escolha estiver nula ira dar um NullPointerException e dessa forma você evita isso.

[]'s

F

Valeu gente… comparando com o equals - escolha.equals(“1”); deu certo…

Na verdade já tinha estudado isso… mas é aquele problema de tu ler e não praticar, na hora que tu precisa não lembra…

Obrigado!!!

F

Aproveitando a ajuda… quem sabe vsc me dão uma força aqui…

Ao executar o código:

if(escolha.equals("1")){ CopiaConteudo copiar1 = new CopiaConteudo(); copiar1.CopiaConteudoArquivo1(); }

Supondo que o valor recebido como parametro foi 1… então é criado um novo objeto CopiaConteudo e chamo seu método CopiaConteudoArquivo1… (este método vai copiar o conteúdo de um arquivo para outro)…

A dúvida é: somente aquelas duas linhas de código dentro do if são suficientes para fazer o método da minha classe rodar… ou eu preciso de alguma coisa, que mande a execução da aplicação para aquela classe, como um dispatcher, ou algo assim???

H

Da maneira que você fez vai funcionar desde que dentro da sua
classe CopiaConteudo seja implementado corretamente o método
para copiar o arquivo.

Criado 18 de outubro de 2007
Ultima resposta 18 de out. de 2007
Respostas 7
Participantes 6