Spring MVC jak pobrać wartość parametru żądania GET HTTP w metodzie kontrolera?

W tym okresie studiuję przykład Spring MVC showcase (do pobrania z STS dasboard) i mam kilka prostych pytań dotyczących przykładów Request Mapping:

1) na mojej home.jsp stronie mam taki link:

        <li>
            <a id="byParameter" class="textLink" href="<c:url value="/mapping/parameter?foo=bar" />">By path, method, and presence of parameter</a>
        </li>

Jak widać po tym linku wykonuję żądanie HTTP GET posiadające parametr " foo "zawierający wartość:"bar".

To żądanie HTTP jest obsługiwane przez następującą metodę klasy kontrolera MappingController:

@RequestMapping(value="/mapping/parameter", method=RequestMethod.GET, params="foo")
public @ResponseBody String byParameter() {
    return "Mapped by path + method + presence of query parameter! (MappingController)";
}

Ta metoda zarządza żądaniem HTTP (tylko Typ GET), który ma parametr o nazwie "foo"

Jak mogę pobrać wartość ("bar") tego parametru i umieścić go w zmiennej wewnątrz kodu metody my by Parameter?

Author: Willi Mentzel, 2012-11-18

2 answers

Jak wyjaśniono w dokumentacji , używając adnotacji @RequestParam:

public @ResponseBody String byParameter(@RequestParam("foo") String foo) {
    return "Mapped by path + method + presence of query parameter! (MappingController) - foo = "
           + foo;
}
 164
Author: JB Nizet,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-18 17:40:54

Możesz również użyć szablonu URI. Jeśli Ustawiłeś żądanie w restful URL, sprężyna może przetworzyć podaną wartość z adresu url.

HTML

<li>
    <a id="byParameter" 
       class="textLink" href="<c:url value="/mapping/parameter/bar />">By path, method,and
           presence of parameter</a>
</li>

Controller

@RequestMapping(value="/mapping/parameter/{foo}", method=RequestMethod.GET)
public @ResponseBody String byParameter(@PathVariable String foo) {
    //Perform logic with foo
    return "Mapped by path + method + presence of query parameter! (MappingController)";
}

Spring URI Template Documentation

 35
Author: Kevin Bowersox,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-19 10:10:36