Thimeleaf 3 URL формы действий с параметрами и метод get не работает - PullRequest
0 голосов
/ 27 ноября 2018

Я использую Thymeleaf 3 в веб-приложении Spring Boot 2.Ниже приведен код формы:

<form data-th-action="@{/props/r(pg=3)}" method="get">
        <div class="form-check form-check-inline">
          <input class="form-check-input" type="checkbox"    name="pt" id="p1" value="pr">
          <label class="form-check-label" for="p1">P1</label>
        </div>
        <div class="form-check form-check-inline">
          <input class="form-check-input" type="checkbox"    name="pt" id="p2" value="pr2">
          <label class="form-check-label" for="p2">P2</label>
        </div>
        <button type="submit" class=" mb-4">Search</button>
      </form>

К сожалению, когда я использовал метод get для формы, он не добавляет? Pg = 3 в представленный URL, URL выглядит как / props / r?если флажок не установлен.Если флажок установлен, URL выглядит следующим образом: / props / r? Pt = p1

отсутствует часть pg = 3.

Как решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

Проблема в том, что у вас есть действие @{/props/r(pg=3)}, которое переводится как /props/r?pg=3, и ваша форма также является методом get.Если у вас есть параметры как в действии, так и в теле формы (и вы используете method="get"), браузеры не объединят их.Вместо этого параметры действия удаляются и заменяются параметрами в теле формы.

Именно поэтому ?pg=3 удаляется и заменяется параметрами-флажками.Вместо этого используйте post или включите pg в качестве скрытого элемента формы.

0 голосов
/ 28 ноября 2018

Вместо того, чтобы помещать pg в качестве параметра в URL-адрес формы, рассмотрите возможность помещения его в скрытое поле, как показано ниже.

<input type="hidden" name="pg" value="3">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...