java - requestmapping - spring basico
Spring MVC ¿Cómo se toma el valor del parámetro de una solicitud GET HTTP en mi método de controlador? (2)
En este período, estoy estudiando el ejemplo de Spring MVC showcase (descargable desde STS dasboard) y tengo una pregunta simple sobre los ejemplos de Request Mapping
:
1) En mi página home.jsp
tengo este enlace:
<li>
<a id="byParameter" class="textLink" href="<c:url value="/mapping/parameter?foo=bar" />">By path, method, and presence of parameter</a>
</li>
Como puede ver en este enlace, estoy haciendo una solicitud HTTP GET que tiene un parámetro "foo" que contiene el valor: "bar".
Esta solicitud HTTP se maneja mediante el siguiente método de la clase controladora MappingController:
@RequestMapping(value="/mapping/parameter", method=RequestMethod.GET, params="foo")
public @ResponseBody String byParameter() {
return "Mapped by path + method + presence of query parameter! (MappingController)";
}
Este método administra la solicitud HTTP (solo tipo GET
) que tiene un parámetro llamado "foo"
¿Cómo puedo tomar el valor ("barra") de este parámetro y ponerlo en una variable dentro del código de mi por el método de parámetros?
Como se explica en la documentación , al usar una anotación @RequestParam
:
public @ResponseBody String byParameter(@RequestParam("foo") String foo) {
return "Mapped by path + method + presence of query parameter! (MappingController) - foo = "
+ foo;
}
También podría usar una plantilla de URI. Si ha estructurado su solicitud en una URL relajante, Spring podría analizar el valor proporcionado de la url.
HTML
<li>
<a id="byParameter"
class="textLink" href="<c:url value="/mapping/parameter/bar />">By path, method,and
presence of parameter</a>
</li>
Controlador
@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)";
}