From d69f3fee277c79d771626c8308f83e018dfeb2ee Mon Sep 17 00:00:00 2001 From: DOHA Date: Mon, 12 Nov 2018 17:54:01 +0200 Subject: [PATCH 1/5] RequestParam annotation --- .../springbootmvc/RequestParamController.java | 86 +++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 spring-boot-mvc/src/main/java/com/baeldung/springbootmvc/RequestParamController.java diff --git a/spring-boot-mvc/src/main/java/com/baeldung/springbootmvc/RequestParamController.java b/spring-boot-mvc/src/main/java/com/baeldung/springbootmvc/RequestParamController.java new file mode 100644 index 0000000000..7a262edd16 --- /dev/null +++ b/spring-boot-mvc/src/main/java/com/baeldung/springbootmvc/RequestParamController.java @@ -0,0 +1,86 @@ +package com.baeldung.springbootmvc; + +import java.util.List; +import java.util.Map; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + + +@Controller +public class RequestParamController { + + @GetMapping("/api/foos") + @ResponseBody + public String getFoos(@RequestParam int limit){ + return "Limit: " + limit; + } + + @GetMapping("/api/bars") + @ResponseBody + public String getBars(@RequestParam(name = "query") String searchQuery){ + return "Query: " + searchQuery; + } + + @GetMapping("/api/users") + @ResponseBody + public String getUsers(@RequestParam(required = false) String query){ + return "Query: " + query; + } + + @GetMapping("/api/products") + @ResponseBody + public String getProducts(@RequestParam(defaultValue = "20") int limit){ + return "Limit: " + limit; + } + + @PostMapping("/api/foos") + @ResponseBody + public String updateFoos(@RequestParam Map allParams){ + return "Parameters are " + allParams.entrySet(); + } + + @PostMapping("/api/posts") + @ResponseBody + public String createPost(@RequestParam String content, @RequestParam MultipartFile file){ + return "File size in bytes: " + file.getSize(); + } + + @GetMapping("/api/posts") + @ResponseBody + public String getPosts(@RequestParam List id){ + return "ID are " + id; + } + + @GetMapping("/foos/{id}") + @ResponseBody + public String getFooById(@PathVariable String id){ + return "ID: " + id; + } + + @GetMapping("/foos") + @ResponseBody + public String getFooByIdUsingQueryParam(@RequestParam String id){ + return "ID: " + id; + } + + @GetMapping({"/myfoos/optional", "/myfoos/optional/{id}"}) + @ResponseBody + public String getFooByOptionalId(@PathVariable(required = false) String id){ + return "ID: " + id; + } + + @GetMapping("/myfoos/optionalParam") + @ResponseBody + public String getFooByOptionalIdUsingQueryParam(@RequestParam(required = false) String id){ + return "ID: " + id; + } + + + +} From 1f7c33145f4b58a5c24de43853975fe8a25e17e6 Mon Sep 17 00:00:00 2001 From: DOHA Date: Thu, 15 Nov 2018 13:32:01 +0200 Subject: [PATCH 2/5] change naming convention --- .../springbootmvc/RequestParamController.java | 51 ++++++++----------- 1 file changed, 22 insertions(+), 29 deletions(-) diff --git a/spring-boot-mvc/src/main/java/com/baeldung/springbootmvc/RequestParamController.java b/spring-boot-mvc/src/main/java/com/baeldung/springbootmvc/RequestParamController.java index 7a262edd16..d35f837c26 100644 --- a/spring-boot-mvc/src/main/java/com/baeldung/springbootmvc/RequestParamController.java +++ b/spring-boot-mvc/src/main/java/com/baeldung/springbootmvc/RequestParamController.java @@ -9,7 +9,6 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.multipart.MultipartFile; @Controller @@ -17,43 +16,37 @@ public class RequestParamController { @GetMapping("/api/foos") @ResponseBody - public String getFoos(@RequestParam int limit){ - return "Limit: " + limit; - } - - @GetMapping("/api/bars") - @ResponseBody - public String getBars(@RequestParam(name = "query") String searchQuery){ - return "Query: " + searchQuery; - } - - @GetMapping("/api/users") - @ResponseBody - public String getUsers(@RequestParam(required = false) String query){ - return "Query: " + query; - } - - @GetMapping("/api/products") - @ResponseBody - public String getProducts(@RequestParam(defaultValue = "20") int limit){ - return "Limit: " + limit; + public String getFoos(@RequestParam String id){ + return "ID: " + id; } @PostMapping("/api/foos") @ResponseBody + public String addFoo(@RequestParam(name = "id") String fooId, @RequestParam String name){ + return "ID: " + fooId; + } + + @GetMapping("/api/foos2") + @ResponseBody + public String getFoos2(@RequestParam(required = false) String id){ + return "ID: " + id; + } + + @GetMapping("/api/foos3") + @ResponseBody + public String getFoos3(@RequestParam(defaultValue = "test") String id){ + return "ID: " + id; + } + + @PostMapping("/api/foos1") + @ResponseBody public String updateFoos(@RequestParam Map allParams){ return "Parameters are " + allParams.entrySet(); } - @PostMapping("/api/posts") + @GetMapping("/api/foos4") @ResponseBody - public String createPost(@RequestParam String content, @RequestParam MultipartFile file){ - return "File size in bytes: " + file.getSize(); - } - - @GetMapping("/api/posts") - @ResponseBody - public String getPosts(@RequestParam List id){ + public String getFoos4(@RequestParam List id){ return "ID are " + id; } From b92af1b149d3e2ba50f7ee455883408b3c1bcb98 Mon Sep 17 00:00:00 2001 From: DOHA Date: Sat, 17 Nov 2018 01:11:26 +0200 Subject: [PATCH 3/5] minor fix --- spring-mvc-simple/pom.xml | 4 ---- .../configuration/ApplicationConfiguration.java | 13 +++++++------ 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/spring-mvc-simple/pom.xml b/spring-mvc-simple/pom.xml index bd63b5ed1c..e4e30183eb 100644 --- a/spring-mvc-simple/pom.xml +++ b/spring-mvc-simple/pom.xml @@ -20,10 +20,6 @@ spring-oxm ${spring-oxm.version} - - org.springframework - spring-context-support - com.sun.mail javax.mail diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/configuration/ApplicationConfiguration.java b/spring-mvc-simple/src/main/java/com/baeldung/spring/configuration/ApplicationConfiguration.java index 284be6c212..941a984684 100644 --- a/spring-mvc-simple/src/main/java/com/baeldung/spring/configuration/ApplicationConfiguration.java +++ b/spring-mvc-simple/src/main/java/com/baeldung/spring/configuration/ApplicationConfiguration.java @@ -1,7 +1,9 @@ package com.baeldung.spring.configuration; -import com.baeldung.spring.controller.rss.ArticleRssFeedViewResolver; -import com.baeldung.spring.controller.rss.JsonChannelHttpMessageConverter; +import java.util.ArrayList; +import java.util.List; +import java.util.Properties; + import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; @@ -21,13 +23,12 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import org.springframework.web.servlet.view.ContentNegotiatingViewResolver; import org.springframework.web.servlet.view.InternalResourceViewResolver; -import java.util.ArrayList; -import java.util.List; -import java.util.Properties; +import com.baeldung.spring.controller.rss.ArticleRssFeedViewResolver; +import com.baeldung.spring.controller.rss.JsonChannelHttpMessageConverter; @Configuration @EnableWebMvc -@ComponentScan(basePackages = { "com.baeldung.springmvcforms", "com.baeldung.spring.controller", "com.baeldung.spring.validator", "com.baeldung.spring.mail" }) +@ComponentScan(basePackages = { "com.baeldung.springmvcforms", "com.baeldung.spring.controller", "com.baeldung.spring.validator", "com.baeldung.spring.mail", "com.baeldung.spring.service" }) public class ApplicationConfiguration implements WebMvcConfigurer { @Override From 16da0e5a0b1ef997087025c3f121722e1fbffc22 Mon Sep 17 00:00:00 2001 From: DOHA Date: Sat, 17 Nov 2018 01:11:51 +0200 Subject: [PATCH 4/5] minor cleanup --- .../com/baeldung/spring/configuration/PushConfiguration.java | 3 ++- .../{controller/push => push/controller}/PushController.java | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) rename spring-mvc-simple/src/main/java/com/baeldung/spring/{controller/push => push/controller}/PushController.java (92%) diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/configuration/PushConfiguration.java b/spring-mvc-simple/src/main/java/com/baeldung/spring/configuration/PushConfiguration.java index 3072501cfa..3aba7e9d89 100644 --- a/spring-mvc-simple/src/main/java/com/baeldung/spring/configuration/PushConfiguration.java +++ b/spring-mvc-simple/src/main/java/com/baeldung/spring/configuration/PushConfiguration.java @@ -8,9 +8,10 @@ import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import org.springframework.web.servlet.view.InternalResourceViewResolver; +// needs HTTP 2 https://github.com/spring-projects/spring-framework/wiki/HTTP-2-support @Configuration @EnableWebMvc -@ComponentScan(basePackages = "com.baeldung.spring.controller.push") +@ComponentScan(basePackages = "com.baeldung.spring.push.controller") public class PushConfiguration implements WebMvcConfigurer { @Bean diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/controller/push/PushController.java b/spring-mvc-simple/src/main/java/com/baeldung/spring/push/controller/PushController.java similarity index 92% rename from spring-mvc-simple/src/main/java/com/baeldung/spring/controller/push/PushController.java rename to spring-mvc-simple/src/main/java/com/baeldung/spring/push/controller/PushController.java index 88448d4885..e812e5df90 100644 --- a/spring-mvc-simple/src/main/java/com/baeldung/spring/controller/push/PushController.java +++ b/spring-mvc-simple/src/main/java/com/baeldung/spring/push/controller/PushController.java @@ -1,4 +1,4 @@ -package com.baeldung.spring.controller.push; +package com.baeldung.spring.push.controller; import javax.servlet.http.PushBuilder; From d14662a9008a51f832651e0c410d6570b5433664 Mon Sep 17 00:00:00 2001 From: DOHA Date: Sat, 17 Nov 2018 01:16:14 +0200 Subject: [PATCH 5/5] move RequestParam --- .../com/baeldung/spring/controller}/RequestParamController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename {spring-boot-mvc/src/main/java/com/baeldung/springbootmvc => spring-mvc-simple/src/main/java/com/baeldung/spring/controller}/RequestParamController.java (98%) diff --git a/spring-boot-mvc/src/main/java/com/baeldung/springbootmvc/RequestParamController.java b/spring-mvc-simple/src/main/java/com/baeldung/spring/controller/RequestParamController.java similarity index 98% rename from spring-boot-mvc/src/main/java/com/baeldung/springbootmvc/RequestParamController.java rename to spring-mvc-simple/src/main/java/com/baeldung/spring/controller/RequestParamController.java index d35f837c26..a9846f1ba9 100644 --- a/spring-boot-mvc/src/main/java/com/baeldung/springbootmvc/RequestParamController.java +++ b/spring-mvc-simple/src/main/java/com/baeldung/spring/controller/RequestParamController.java @@ -1,4 +1,4 @@ -package com.baeldung.springbootmvc; +package com.baeldung.spring.controller; import java.util.List; import java.util.Map;