Problema ao Ler CheckBox

Olá Senhores, bom dia!

Estou com uma dúvida em um processo de leitura de uma série de checkbox… Estou usando JSP e uma classe Servlet (Arquitetura MVC)… Montei um exemplo abaixo:

No JSP:

<body>
<form action="Servlet?action=cadastrar" method="POST">
<input name="d1t1" type="checkbox">D1T1<br>
<input name="d1t2" type="checkbox">D1T2<br>
<input name="d2t1" type="checkbox">D2T1<br>
<input name="d2t2" type="checkbox">D2T2<br>
<input type="submit" name="Submit" value="Enviar"></form>
</body>

No Servlet:

		if (action.equalsIgnoreCase("cadastrar")) {

			for (int i = 1; i < 3; i++) {

				if (request.getParameter("d" + i + "t1")
						.equalsIgnoreCase("on")) {
					System.out.println("d" + i + "t1 está Marcado");
				} else {
					System.out.println("d" + i + "t1 está Desmarcado");

				}
				if (request.getParameter("d" + i + "t2")
						.equalsIgnoreCase("on")) {
					System.out.println("d" + i + "t2 está Marcado");
				} else {
					System.out.println("d" + i + "t2 está Desmarcado");

				}

			}

		}

Só que em tempo de Execução ele me retorna um NullPointerException :(, você pode me ajudar?

Obrigado!

alessandro.miotto,
bem-vindo ao guj! :smiley:

Favor usar as tags code para postar seu codigo para ficar fácil para nós lermos!

E para que vc tá repetindo os checkboxes???

E esse for na posição 1:
for (int i = 1; i < 3; i++) {
Você tem noção que um deles não será lido, certo?

Dá uma lida na apostila da caelum, FJ-11 e FJ21. :wink:

Olá Ironlynx, tenho noção sim…

Na verdade meu for começa em 1(for (int i = 1; i < 3; i++) ) pois minhas variaveis no JSP tem a sequencia d"1"t1… d"1"t2… variando sempre o número entre “”, acrescido a cada rodada pelo loop.

Oque me sugere?

Voce pode trabalhar diferente com checkbox, vai um exemplo:

<form action="exibe" > <input type="checkbox" name="check" value="A"/>A <br> <input type="checkbox" name="check" value="B"/>B <br> <input type="checkbox" name="check" value="C"/>C <br> <input type="checkbox" name="check" value="D"/>D <br> <input type="submit" value="Enviar" /> </form>

E no servlet:

[code]
String []check = request.getParameterValues(“check”);

    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();
    try {
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Servlet Exibe</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<h2>Selecionados: </h2>");
        for(int i = 0 ; i<= check.length; i++){
            out.println(check[i]);
        }
        out.println("</body>");
        out.println("</html>");[/code]

Assim vc itera por todos os checks, vê se atende a sua necessidade.