Problema com tabelae if simples no jsp

Pessoal… estou tentando jogar o valor de uma tabela para outra usando o método post e recebendo o valor pelo request. tá dando erro nos ifs…




<table width="10%" border="1">
  <tr>
    <td><input name="1" type="submit" value="1"/></td>
    <td><input name="2" type="submit" value="2" /></td>
    <td><input name="3" type="submit" value="3" /></td>
  </tr>
  <tr>
    <td><input name="4" type="submit" value="4" /></td>
    <td><input name="5" type="submit" value="5" /></td>
    <td><input name="6" type="submit" value="6" /></td>
  </tr>
  <tr>
    <td><input name="7" type="submit" value="7" /></td>
    <td><input name="8" type="submit" value="8" /></td>
    <td><input name="9" type="submit" value="9" /></td>
  </tr>
</table>

</form>

<br/>
<br/>
<br/>
<br/>
<br/>
<%

String n1 = request.getParameter("1");
String n2 = request.getParameter("2");
String n3 = request.getParameter("3");
String n4 = request.getParameter("4");
String n5 = request.getParameter("5");
String n6 = request.getParameter("6");
String n7 = request.getParameter("7");
String n8 = request.getParameter("8");
String n9 = request.getParameter("9");

%>

<form name="f2" method="post" action="" >

<table width="10%" border="1">
  <tr>
    <td>.<% if(n1.equals("1")){ out.println(n1);  }%>.</td>
    <td>.<% if(n2.equals("2")){ out.println(n2);  }%>.</td>
    <td>.<% if(n3.equals("3")){ out.println(n3);  }%>.</td>
  </tr>
  <tr>
    <td>.<% if(n4.equals("4")){ out.println(n4);  }%>.</td>
    <td>.<% if(n5.equals("5")){ out.println(n5);  }%>.</td>
    <td>.<% if(n6.equals("6")){ out.println(n6);  }%>.</td>
  </tr>
  <tr>
    <td>.<% if(n7.equals("7")){ out.println(n7);  }%>.</td>
    <td>.<% if(n8.equals("8")){ out.println(n8);  }%>.</td>
    <td>.<% if(n9.equals("9")){ out.println(n9);  }%>.</td>
  </tr>
</table>

</form>

ERRO < < << <<<< << < < <<
/
/
/
/
/


org.apache.jasper.JasperException: An exception occurred processing JSP page /teste.jsp at line 58

55: 
56: <table width="10%" border="1">
57:   <tr>
58:     <td>.<% if(n1.equals("1")){ out.println(n1);  }%>.</td>
59:     <td>.<% if(n2.equals("2")){ out.println(n2);  }%>.</td>
60:     <td>.<% if(n3.equals("3")){ out.println(n3);  }%>.</td>
61:   </tr>


Stacktrace:
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:551)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:455)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

root cause

java.lang.NullPointerException
	org.apache.jsp.teste_jsp._jspService(teste_jsp.java:113)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:417)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

você “tomou” uma NullPointerException.

<td>.<% if(n1.equals("1")){ out.println(n1);  }%>.</td>

n1 talvez seja nulo.

inverta a comparação*.

<td>.<% if("1".equals(n1)){ out.println(n1);  }%>.</td>

veja equals.

Funcionou =D ahuhauhauah
eu nem tinha imaginado nisso de inverter a condição do if =)

valaeu mesmo

outra dúvida…
tipo… quando eu clicko no numero 1 ele exibe o numero 1 na tabela embaixo … só que ele nao mantem os valores da tabela de baixo… como faço pra ir preenchendo os valores tipo… clico no 1 depois clico no 5 (ele mantem o 1 e fica com 5 … clico no 8 ele fica com o 1.,5 e 8) como posso fazer isso?
só banco de dados?
nao eh pra salvar direto nao… é so enquanto executo mesmo… só um teste ^^

[quote=felipevs]outra dúvida…
tipo… quando eu clicko no numero 1 ele exibe o numero 1 na tabela embaixo … só que ele nao mantem os valores da tabela de baixo… como faço pra ir preenchendo os valores tipo… clico no 1 depois clico no 5 (ele mantem o 1 e fica com 5 … clico no 8 ele fica com o 1.,5 e 8) como posso fazer isso?
só banco de dados?
nao eh pra salvar direto nao… é so enquanto executo mesmo… só um teste ^^[/quote]
você pode criar campos hidden no formulário para armazenar os valores, recuperá-los na Servlet, colocá-los em uma lista e recuperar está na JSP.

só duas duvidas pequenas p nao poder criar outro topicos sem necessidade … servlet são classes essas coisas em jsp é? pq java OO desktop eu ja estudei mas jsp tou iniciando agora…
comecei a estudar ontem de noite… mas vou da uma estudada… só me tire a ultima duvida… não pode fazer isso nao é?

onde tem %> frase em html <%

 <td><% if("1".equals(n1)){ out.println( %> frase em html <%  );  }%></td>

[quote=felipevs]só duas duvidas pequenas p nao poder criar outro topicos sem necessidade … servlet são classes essas coisas em jsp é? pq java OO desktop eu ja estudei mas jsp tou iniciando agora…
comecei a estudar ontem de noite… mas vou da uma estudada… só me tire a ultima duvida… não pode fazer isso nao é?

onde tem %> frase em html <%

 <td><% if("1".equals(n1)){ out.println( %> frase em html <%  );  }%></td>

não pode. você terá um erro e compilação do JSP. neste caso você não terminou o comando out.println()

a forma correta de se fazer isso é:

[code]


<% if (“1”.equals(n1)) { %>
frase em html
<% } %> [/code]

ou com JSTL. dê uma olhada na apostila da Caelum.