У меня одна форма с несколькими кнопками отправки, каждая из которых выполняет отдельную функцию, например:
- Поиск
- Обновление
- Добавить
- Удалить
Все действия выполняются в режиме POST и используют атрибут name
в теге кнопки, сопоставленном с параметрами на стороне контроллера. Пока все работает нормально.
Теперь мне нужно отключить нажатие кнопки, когда форма отправляется, а на стороне сервера обновления БД завершаются и сервер отвечает обратно.
Итак, используя jquery
, я добавил код ниже, и он перестал работать.
JS
$('form').submit(function(e) {
$(this).find("button[type='submit']").attr('disabled',true);
});
HTML
<form id="formSecurity"
th:action="@{/security}" th:object="${securityDTO}" method="POST">
<div class="form-group col-md-6">
<div class="input-group">
<input class="form-control" type="text" th:field="*{secId}" id="secId" placeholder="Find by SecId..." />
<div class="input-group-append">
<button class="btn btn-primary" name="search" type="submit">Search</button>
</div>
</div>
...
</div>
...
</form>
Контроллер
@PostMapping(value="/security", params={"search"})
public String searchSecurity(final SecurityDTO securityDTO, final BindingResult result, Model model) {
...
}
@PostMapping(value="/security", params={"update"})
public String searchSecurity(final SecurityDTO securityDTO, final BindingResult result, Model model) {
...
}
@PostMapping(value="/security", params={"addRow"})
public String searchSecurity(final SecurityDTO securityDTO, final BindingResult result, Model model) {
...
}
@PostMapping(value="/security", params={"removeRow"})
public String searchSecurity(final SecurityDTO securityDTO, final BindingResult result, Model model) {
...
}
Но теперь похоже, что name
params не отправляется. И я получаю ошибку ниже:
WARN 16660 --- [nio-8989-exec-8] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.bind.UnsatisfiedServletRequestParameterException: Parameter conditions "search" OR "update" OR "addRow" OR "removeRow" not met for actual request parameters: secId={1234}]