Получить название нажатой кнопки отправки в Grails - PullRequest
5 голосов
/ 30 апреля 2010

На форме у меня есть две кнопки отправки:

<g:submitButton name="add" value="Add"/>
<g:submitButton name="addAnother" value="Add and Create Another"/>

Мне нужно предпринять несколько иные действия в зависимости от того, какая кнопка была использована для отправки формы. Как получить название нажатой кнопки в моем контроллере?

Ответы [ 2 ]

6 голосов
/ 30 апреля 2010

Имя нажатой кнопки заканчивается в параметрах:

if(params["addAnother"])
   doThis()
else
   doThat()
0 голосов
/ 20 марта 2018

Из тегов документов:

actionSubmit
Создает кнопку отправки, которая отображается на конкретное действие, что позволяет вам иметь несколько кнопок отправки в одной форме. (...) Когда вы используете обычную кнопку отправки внутри формы, это форма сам, который определяет, на какой URL отправляется запрос, и, следовательно, какое действие выполняется. Тем не менее, этот тег переопределяет это поведение и определяет, какое действие выполняется. Обратите внимание, что это все еще Форма, определяющая целевой контроллер.

<g:form controller="book">
    <g:actionSubmit value="click to update" action="update" />
    <g:actionSubmit value="click to delete" action="delete" />
</g:form>

Хотя вы упоминаете «небольшое различие» между действиями для каждой кнопки, среди тегов grails я бы предложил actionSubmit в качестве предпочтительного способа доставки данных формы для различных поведений (действий) в контроллере. Даже если между ними обычно встречается общее поведение, подумайте о рефакторинге кода вашего контроллера, а не о тестировании параметров запроса внутри вашего действия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...