Обработка двух разных запросов кнопки отправки с одним классом контроллера Spring MVC - PullRequest
0 голосов
/ 04 октября 2018

У меня есть две кнопки отправки в шаблоне чабреца.Я хочу отправить его на 2 разных действия в одном контроллере.Я сделал сопоставление запроса следующим образом:

@RequestMapping(value="/directBind",  params={"send"})
public String send(Model model, @ModelAttribute(value="directBind") DirectBind directBind){

@RequestMapping(value="/directBind", params={"addPolicy"})
public String addPolicy(final DirectBind directBind, Model model){

Две кнопки ввода в html:

 <input id="send"  type="submit" value="send" name="send" class="btn btn-success finish" data-loading-text="Sent!"/>

 <input type="submit"  name="addPolicy" class="btn btn-default" style="margin-left: 1rem; margin-bottom: 1rem;"><span class="fa fa-plus"></span> </input>

Форма:

<form enctype="multipart/form-data" class="ui form" th:object="${directBind}" th:action="@{/send}" method="post"  style="padding:0 10px;">

Отправка формы только для отправкидействие.

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Мне удалось решить эту проблему.Я использовал «directBind» в атрибуте действия формы и использовал дискриминатор параметров в отображении запроса.Это сработало!

0 голосов
/ 04 октября 2018

Я предполагаю, что вы намерены использовать один пружинный контроллер для обработки действий отправки из двух кнопок отправки.

  • Вы можете использовать одно и то же имя и разные значения атрибута для двух кнопок ввода HTML.Атрибут имени и значения кнопок отправляется контроллеру в качестве параметра запроса.Это позволит контроллеру определить, какая кнопка была нажата, и предпринять соответствующие действия.

    <input id="send_id"  type="submit" name="action" value="send"/>
    <input id="addPolicy_id"  type="submit" name="action" value="addPolicy"/>
    @RequestMapping(value="/directBind")
    public String doExecute(@RequestParam("action") String action, Model model, @ModelAttribute(value="directBind") DirectBind directBind){
    if (action=="send"){
    //do something
    send();
    }
    if (action=="addPolicy"){
    //do something
    addPolicy();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...