[JAVA] Spring MVC: Verhalten, wenn "@ RequestParam" weggelassen wird

Umgebung

Beschreibung von @RequestParam lautet: Es ist aufgeführt.

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.

Ich bin tatsächlich umgezogen und habe bestätigt, dass dies korrekt ist.

SampleController



@Controller
public class SampleController {
//Methode hier hinzufügen
	
}

Grundtypen wie String, int usw. für Methodenargumenttypen

Geben Sie das Attribut name mit @ RequestParam an

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;
	}

Wenn ich auf "/ search1? Name = test & id = 2" zugegriffen habe, habe ich "name = test, id = 2" erhalten.

Geben Sie nicht "@ RequestParam" an

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

Wenn ich auf "/ search1? Name = test & id = 2" zugegriffen habe, habe ich "name = test, id = 2" erhalten.

Der Methodenargumenttyp ist "Map <String, String>"

Gewähren Sie "@ RequestParam"

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

Wenn ich auf / search6? Name = test & id = 2 zugegriffen habe, habe ich {name = test, id = 2} erhalten.

Gewähren Sie nicht "@ RequestParam"

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

Beim Zugriff auf / search5? Name = test & id = 2 wurde{}angezeigt.

Zwei Argumente mit @ RequestParam

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

Wenn ich auf / search9? Name = test & id = 2 zugegriffen habe, habe ich {name = test, id = 2}, {name = test, id = 2} erhalten.

Der Methodenargumenttyp ist "MultiValueMap <String, String>"

Gewähren Sie "@ RequestParam"

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

Als ich auf "/ search8? Name = test & id = 2 & name = sample" zugegriffen habe, wurde "{name = [test, sample], id = [2]}" angezeigt.

Der Methodenargumenttyp ist "Map <String, Object>"

Gewähren Sie "@ RequestParam"

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

Wenn ich auf / search4? Name = test & id = 2 zugegriffen habe, habe ich {name = test, id = 2} erhalten.

Bean-Klasse, deren Methodenargumenttyp selbst erstellt wurde

Gewähren Sie nicht "@ 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;
	}    

Referenzseite

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

Recommended Posts

Spring MVC: Verhalten, wenn "@ RequestParam" weggelassen wird
Was ist Spring Tools 4?
Was ist ein MVC-Modell?
Was ist @Autowired im Spring Boot?
Was ist das Java Servlet / JSP MVC-Modell?
Der offizielle Name von Spring MVC ist Spring Web MVC
Was ist null? ]]
Was ist java
Was ist Schlüsselumhang?
Was ist Jackson?
Was ist Selbst
Was ist Jenkins?
Was ist ArgumentMatcher?
Was ist IM-Jonglieren?
Was ist params
Was ist SLF4J?
Was ist Fassade? ??
Was ist Java <>?
Was ist Gradle?
Was ist POJO?
Was ist java
Was ist centOS?
Was ist RubyGem?
Was ist before_action?
Was ist Docker?
Was ist Byte?
Was ist Tomcat?
ORA-08177, wenn Spring Batch kontinuierlich in Oracle ausgeführt wird
ParseException: Was tun, wenn ein nicht analysierbares Datum erreicht ist?