Witam, oto fragment pliku jsp z którym mam problem :

<c:choose>
                <c:when test="${ustawienia.tylkoObecni == true}">
                  <input type="checkbox" name="czyobecni" value="obecni" checked="checked" />Tylko obecni
                </c:when>
                <c:when test="${ustawienia.tylkoObecni == false}">
                  <input type="checkbox" name="czyobecni" value="wszyscy" />Tylko obecni
                </c:when>
            </c:choose>

Stan wygenerowanego checkboxa odczytywany jest w servlecie ten sposób :

   ` String checkObecni = request.getParameter("czyobecni");   `     

Po odczytaniu formularza, jest on odświeżany z nowymi ustawieniami (parametr ustawienia).

Checkbox dobrze reaguje na wartość parametru - jest checked lub nie zgodnie z wywołaniem

Problem jest z odczytaniem danych

Jeśli checkbox jest zaznaczony, to checkObecni = "obecni", jeśli nie jest zaznaczony to if(checkObecni.equals("obecni")) zwraca nullpointerexception

Na formularzu jest jeszcze prawidłowo działające radio z 4 opcjami, ustawiane i pobierane jest podobnie do checkboxa. Po wyłączeniu radio (myślałem że może być jakiś konflikt) działa tak samo - to znaczy źle.

Trochę z tym jeszcze eksperymentowałem.

Zmieniłem metodę na GET żeby zobaczyć w pasku co się dzieje. Jeśli chceckbox jest checked to parametr czyobecni jest przekazywany. W przeciwnym przypadku nie ma go na liście parametrów. Nie wiem czy jest to normalne działanie checkboxa, czy mam jakiś błąd, no ale można to już jakoś obsłużyć