[JAVA] Spring MVC: Comportement lorsque `@ RequestParam` est omis

environnement

Dans Description de @RequestParam, c'est comme suit. Il est répertorié.

If the method parameter is Map<String, String> or MultiValueMap<String, String> and a parameter name is not specified, then the map parameter is populated with all request parameter names and values.

J'ai en fait déménagé et confirmé que c'était correct.

SampleController



@Controller
public class SampleController {
//Ajouter une méthode ici
	
}

Types de base tels que String, int, etc. pour les types d'argument de méthode

Spécifiez l'attribut name avec @ RequestParam

SampleController.java


	@GetMapping("/search1")
	@ResponseBody
	String search1(@RequestParam(name="name") String bar,
                   @RequestParam(name="id") int hoge ) {
		String result = "name="+ bar + ",id=" + hoge;
		return result;
	}

Quand j'ai accédé à / search1? Name = test & id = 2, j'ai name = test, id = 2.

Ne spécifiez pas @ RequestParam

	@GetMapping("/search2")
	@ResponseBody
	String search2(String name, int id ) {
		String result = "name="+name + ",id=" + id;
		return result;
	}

Quand j'ai accédé à / search1? Name = test & id = 2, j'ai name = test, id = 2.

Le type d'argument de la méthode est Map <String, String>

Accorder @ RequestParam

	@GetMapping("/search6")
	@ResponseBody
	String search6(@RequestParam Map<String, String> params) {
		String result = params.toString();
		return result;
	}

Quand j'ai accédé à / search6? Name = test & id = 2, j'ai {name = test, id = 2}.

Ne pas accorder @ RequestParam

	@GetMapping("/search5")
	@ResponseBody
	String search5(Map<String, String> params) {
		String result = params.toString();
		return result;
	}

Quand j'ai accédé à / search5? Name = test & id = 2,{}était affiché.

Deux arguments avec @ RequestParam

	@GetMapping("/search9")
	@ResponseBody
	String search6(@RequestParam Map<String, String> params, @RequestParam Map<String, String> params2) {
		String result = params.toString() + "," + params2.toString();
		return result;
	}

Quand j'ai accédé à / search9? Name = test & id = 2, j'ai obtenu {name = test, id = 2}, {name = test, id = 2}.

Le type d'argument de la méthode est MultiValueMap <String, String>

Accorder @ RequestParam

	@GetMapping("/search8")
	@ResponseBody
	String search8(@RequestParam MultiValueMap<String, String> params) {
		String result = params.toString();
		return result;
	}

Quand j'ai accédé à / search8? Name = test & id = 2 & name = sample,{name = [test, sample], id = [2]}était affiché.

Le type d'argument de la méthode est Map <String, Object>

Accorder @ RequestParam

	@GetMapping("/search4")
	@ResponseBody
	String search4(@RequestParam Map<String, Object> params) {
		String result = params.toString();
		return result;
	}

Quand j'ai accédé à / search4? Name = test & id = 2, j'ai {name = test, id = 2}.

Bean classe dont le type d'argument de méthode est self-made

Ne pas accorder @ RequestParam

	@GetMapping("/search3")
	@ResponseBody
	String search3(SampleBean params) {
		String result = "name="+params.getName() + ",id=" + params.getId();
		return result;
	}
    
	@Data //lombok annotation
	public static class SampleBean {
		String name;
		int id;
	}    

Site de référence

http://www.ne.jp/asahi/hishidama/home/tech/java/spring/boot/RequestParam.html

Recommended Posts

Spring MVC: Comportement lorsque `@ RequestParam` est omis
Qu'est-ce que Spring Tools 4
Qu'est-ce qu'un modèle MVC?
Qu'est-ce que @Autowired dans Spring Boot?
Qu'est-ce que le modèle Java Servlet / JSP MVC?
Le nom officiel de Spring MVC est Spring Web MVC
Qu'est-ce qui est nul? ]
Qu'est-ce que 'java
Qu'est-ce que Keycloak
Qu'est-ce que Jackson?
Qu'est-ce que soi
Qu'est-ce que Jenkins
Qu'est-ce que ArgumentMatcher?
Qu'est-ce que IM-Juggling?
Qu'est-ce que les paramètres
Qu'est-ce que SLF4J?
Qu'est-ce que la façade? ??
Qu'est-ce que Java <>?
Qu'est-ce que Gradle?
Qu'est-ce que POJO
Qu'est-ce que 'java
Qu'est-ce que centOS
Qu'est-ce que RubyGem?
Qu'est-ce que before_action?
Qu'est-ce que Docker
Qu'est-ce que Byte?
Qu'est-ce que Tomcat
ORA-08177 lorsque Spring Batch est exécuté en continu dans Oracle
ParseException: que faire lorsqu'une date impossible à analyser est atteinte