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ć