Как отправить в контроллер Spring значение пустой radio button?

Учусь спрингу, делаю "Шифр Цезаря". Так выглядит UI: ui Caesar Cipher

При активной кнопке все хорошо, переводит, а вот при неактивной отвечает bad request 400. Спринг выдает следующее:

WARN 15900 --- [nio-8080-exec-5] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.bind.MissingServletRequestParameterException: Required request parameter 'confirm' for method parameter type String is not present]

Перепробовал уже много чего - безрезультатно, помогите!

Вот форма html+thymeleaf:

<form action="/" method="post">
            <textarea name="text" placeholder="— Думаешь, Фьюри что-то скрывает от нас?" class="form-control" rows="6"></textarea>
            <div class="d-grid gap-2 d-sm-flex justify-content-sm-center mb-5 mt-5">
                <div class="form-check form-switch mt-2">
                    <input class="form-check-input" type="checkbox" name="confirm" id="flexSwitchCheckChecked" th:checked="${confirm}" checked>
                    <label class="form-check-label" for="flexSwitchCheckChecked">Расшифровать</label>
                </div>
                <button type="submit" class="btn btn-success">Перевести</button>

            </div>
        </form>

Вот мой контроллер:

@Controller
public class DefaultController {

@GetMapping("/")
public String index(Model model){
    model.addAttribute("content", CaesarCipher.getText());
    return "index";
}

@PostMapping("/")
public String postIndex(@RequestParam String text, @RequestParam String confirm, Model 
model){
    boolean flag = false;            //flag нуден для того чтобы класс CaesarCipher понимал шифровать ему или расшифровывать
    if (confirm != "on") flag = true;   //это я пытаюсь обработать 'confirm'
    model.addAttribute("text", CaesarCipher.run(text, flag));
    return "redirect:/";
}
}

Буду благодарен Вашим советам и критике!


Ответы (0 шт):