Передайте параметр запроса в Spring MVC 3 - PullRequest
5 голосов
/ 10 ноября 2010

Я просто хочу отправить значение моего выпадающего списка с параметром запроса.В моем случае

Kidscalcula_web/start.htm?klasid=myValueHere

Я знаю способ сделать это, но звучит так иррационально, чтобы использовать это для этого.Если бы мне было скучно, я бы, вероятно, написал несколько jQuery, чтобы сделать сообщение и отправить параметр, например. Теперь это действительно очень плохая идея, чтобы вручную сделать мою строку запросов, поскольку Spring об этом позаботится.Так, как я мог сделать простую форму, которая просто посылает мое выпадающее значение моему контроллеру?

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

    @RequestMapping(value = "post")
    public String postIndex(@RequestParam("klasid") String klasid, HttpServletResponse response,
            HttpServletRequest request) {
}

Но я действительно не могу найти примеров того, как создать JSP для отправки мне этого значения.Возможно ли это с тегом <form>?

Ответы [ 2 ]

12 голосов
/ 10 ноября 2010

Taglib <form> обычно используется с объектами команд поддержки формы, а не привязывается к контроллерам с использованием отдельных @RequestParam аргументов. Вот почему вы не увидите никаких примеров использования этой комбинации в документации.

Например, вместо @RequestParam("klasid") у вас будет класс команд с полем с именем klasid, и Spring будет связывать все вместе:

@RequestMapping(value = "post")
public String postIndex(@ModelAttribute MyCommandClass command) { /../ }

Это имеет смысл, если учесть, что формы обычно имеют несколько параметров, и было бы неудобно объявлять их все, используя @RequestParam.

Сказав это, вы все равно можете это сделать - любые элементы управления формой сгенерируют параметры запроса, с которыми @RequestParam может связываться, но если вы решите отклониться от шаблона команды Spring MVC для поддержки форм, то это довольно неудобно.

4 голосов
/ 10 ноября 2010

Вам даже не нужен taglib для отправки этого запроса. Вы можете создать простейшую HTML-форму с помощью method = "GET" (значение по умолчанию method):

<form action = "...">
    <select name = "klasid">
        <option value = "value1">Option 1</option>
        <option value = "value2">Option 2</option>
        <option value = "value3">Option 3</option>
    </select>
    <input type = "submit" />
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...