map = new HashMap<>();
map.put("test", "Hello from map");
return map;
}
diff --git a/spring-web-modules/spring-mvc-basics-4/src/main/java/com/baeldung/controller/controller/PassParametersController.java b/spring-web-modules/spring-mvc-basics-4/src/main/java/com/baeldung/controller/controller/PassParametersController.java
index d8330333cb..46b7003f3e 100644
--- a/spring-web-modules/spring-mvc-basics-4/src/main/java/com/baeldung/controller/controller/PassParametersController.java
+++ b/spring-web-modules/spring-mvc-basics-4/src/main/java/com/baeldung/controller/controller/PassParametersController.java
@@ -18,19 +18,19 @@ public class PassParametersController {
@GetMapping("/showViewPage")
public String passParametersWithModel(Model model) {
model.addAttribute("message", "Baeldung");
- return "viewPage";
+ return "view/viewPage";
}
@GetMapping("/printViewPage")
public String passParametersWithModelMap(ModelMap map) {
map.addAttribute("welcomeMessage", "welcome");
map.addAttribute("message", "Baeldung");
- return "viewPage";
+ return "view/viewPage";
}
@GetMapping("/goToViewPage")
public ModelAndView passParametersWithModelAndView() {
- ModelAndView modelAndView = new ModelAndView("viewPage");
+ ModelAndView modelAndView = new ModelAndView("view/viewPage");
modelAndView.addObject("message", "Baeldung");
return modelAndView;
}
diff --git a/spring-web-modules/spring-mvc-basics-4/src/main/java/com/baeldung/controller/controller/RestController.java b/spring-web-modules/spring-mvc-basics-4/src/main/java/com/baeldung/controller/controller/RestController.java
index a529faeed3..eead000621 100644
--- a/spring-web-modules/spring-mvc-basics-4/src/main/java/com/baeldung/controller/controller/RestController.java
+++ b/spring-web-modules/spring-mvc-basics-4/src/main/java/com/baeldung/controller/controller/RestController.java
@@ -1,17 +1,15 @@
package com.baeldung.controller.controller;
-import com.baeldung.controller.student.Student;
-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.ResponseBody;
-@Controller
+import com.baeldung.controller.student.Student;
+
+@org.springframework.web.bind.annotation.RestController
public class RestController {
@GetMapping(value = "/student/{studentId}")
- public @ResponseBody
- Student getTestData(@PathVariable Integer studentId) {
+ public Student getTestData(@PathVariable Integer studentId) {
Student student = new Student();
student.setName("Peter");
student.setId(studentId);
diff --git a/spring-web-modules/spring-mvc-basics-4/src/main/java/com/baeldung/controller/student/Student.java b/spring-web-modules/spring-mvc-basics-4/src/main/java/com/baeldung/controller/student/Student.java
index 8a82dd5553..5c2b991312 100644
--- a/spring-web-modules/spring-mvc-basics-4/src/main/java/com/baeldung/controller/student/Student.java
+++ b/spring-web-modules/spring-mvc-basics-4/src/main/java/com/baeldung/controller/student/Student.java
@@ -27,7 +27,14 @@ public class Student {
}
@Override
- public boolean equals(Object obj) {
- return this.name.equals(((Student) obj).getName());
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof Student)) {
+ return false;
+ }
+ Student student = (Student) o;
+ return getName().equals(student.getName());
}
}
\ No newline at end of file
diff --git a/spring-web-modules/spring-mvc-basics-4/src/main/java/com/baeldung/jsonparams/config/JsonParamsConfig.java b/spring-web-modules/spring-mvc-basics-4/src/main/java/com/baeldung/jsonparams/config/JsonParamsConfig.java
deleted file mode 100644
index f2049554ab..0000000000
--- a/spring-web-modules/spring-mvc-basics-4/src/main/java/com/baeldung/jsonparams/config/JsonParamsConfig.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.baeldung.jsonparams.config;
-
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.web.servlet.ViewResolver;
-import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
-import org.springframework.web.servlet.config.annotation.EnableWebMvc;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
-import org.springframework.web.servlet.view.InternalResourceViewResolver;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-@Configuration
-@EnableWebMvc
-@ComponentScan(basePackages = { "com.baeldung.jsonparams" })
-public class JsonParamsConfig implements WebMvcConfigurer {
- @Override
- public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
- configurer.enable();
- }
-
- @Bean
- public ViewResolver viewResolver() {
- InternalResourceViewResolver bean = new InternalResourceViewResolver();
- bean.setPrefix("/WEB-INF/");
- bean.setSuffix(".jsp");
- return bean;
- }
-
- @Bean
- public ObjectMapper objectMapper() {
- return new ObjectMapper();
- }
-
-}
diff --git a/spring-web-modules/spring-mvc-basics-4/src/main/java/com/baeldung/jsonparams/config/JsonParamsInit.java b/spring-web-modules/spring-mvc-basics-4/src/main/java/com/baeldung/jsonparams/config/JsonParamsInit.java
deleted file mode 100644
index 6db2a92350..0000000000
--- a/spring-web-modules/spring-mvc-basics-4/src/main/java/com/baeldung/jsonparams/config/JsonParamsInit.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package com.baeldung.jsonparams.config;
-
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRegistration;
-
-import org.springframework.web.context.ContextLoaderListener;
-import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
-import org.springframework.web.servlet.DispatcherServlet;
-
-public class JsonParamsInit // implements WebApplicationInitializer
-{
-
- //uncomment to run the product controller example
- //@Override
- public void onStartup(ServletContext sc) throws ServletException {
- AnnotationConfigWebApplicationContext root = new AnnotationConfigWebApplicationContext();
- root.register(JsonParamsConfig.class);
- root.setServletContext(sc);
- sc.addListener(new ContextLoaderListener(root));
-
- DispatcherServlet dv = new DispatcherServlet(root);
-
- ServletRegistration.Dynamic appServlet = sc.addServlet("jsonparams-mvc", dv);
- appServlet.setLoadOnStartup(1);
- appServlet.addMapping("/");
- }
-
-}
diff --git a/spring-web-modules/spring-mvc-basics-4/src/main/java/com/baeldung/jsonparams/controller/ProductController.java b/spring-web-modules/spring-mvc-basics-4/src/main/java/com/baeldung/jsonparams/controller/ProductController.java
index e4e2ce085d..915731581e 100644
--- a/spring-web-modules/spring-mvc-basics-4/src/main/java/com/baeldung/jsonparams/controller/ProductController.java
+++ b/spring-web-modules/spring-mvc-basics-4/src/main/java/com/baeldung/jsonparams/controller/ProductController.java
@@ -1,7 +1,6 @@
package com.baeldung.jsonparams.controller;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Controller;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.InitBinder;
@@ -9,7 +8,7 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
import com.baeldung.jsonparams.model.Product;
import com.baeldung.jsonparams.propertyeditor.ProductEditor;
@@ -17,7 +16,7 @@ import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
-@Controller
+@RestController
@RequestMapping("/products")
public class ProductController {
@@ -34,21 +33,18 @@ public class ProductController {
}
@PostMapping("/create")
- @ResponseBody
public Product createProduct(@RequestBody Product product) {
// custom logic
return product;
}
@GetMapping("/get")
- @ResponseBody
- public Product getProduct(@RequestParam String product) throws JsonMappingException, JsonProcessingException {
+ public Product getProduct(@RequestParam String product) throws JsonProcessingException {
final Product prod = objectMapper.readValue(product, Product.class);
return prod;
}
@GetMapping("/get2")
- @ResponseBody
public Product get2Product(@RequestParam Product product) {
// custom logic
return product;
diff --git a/spring-web-modules/spring-mvc-basics-4/src/main/java/com/baeldung/jsonparams/propertyeditor/ProductEditor.java b/spring-web-modules/spring-mvc-basics-4/src/main/java/com/baeldung/jsonparams/propertyeditor/ProductEditor.java
index 11766118cd..41d97bed84 100644
--- a/spring-web-modules/spring-mvc-basics-4/src/main/java/com/baeldung/jsonparams/propertyeditor/ProductEditor.java
+++ b/spring-web-modules/spring-mvc-basics-4/src/main/java/com/baeldung/jsonparams/propertyeditor/ProductEditor.java
@@ -18,7 +18,7 @@ public class ProductEditor extends PropertyEditorSupport {
@Override
public void setAsText(String text) throws IllegalArgumentException {
- if (StringUtils.isEmpty(text)) {
+ if (!StringUtils.hasText(text)) {
setValue(null);
} else {
Product prod = new Product();
diff --git a/spring-web-modules/spring-mvc-basics-4/src/main/java/com/baeldung/optionalpathvars/ArticleViewerController.java b/spring-web-modules/spring-mvc-basics-4/src/main/java/com/baeldung/optionalpathvars/ArticleViewerController.java
deleted file mode 100644
index 1876798bd6..0000000000
--- a/spring-web-modules/spring-mvc-basics-4/src/main/java/com/baeldung/optionalpathvars/ArticleViewerController.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.baeldung.optionalpathvars;
-
-import static com.baeldung.optionalpathvars.Article.DEFAULT_ARTICLE;
-
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-@RestController
-public class ArticleViewerController {
-
- @RequestMapping(value = {"/article", "/article/{id}"})
- public Article getArticle(@PathVariable(name = "id") Integer articleId) {
-
- if (articleId != null) {
- return new Article(articleId);
- } else {
- return DEFAULT_ARTICLE;
- }
-
- }
-
-}
\ No newline at end of file
diff --git a/spring-web-modules/spring-mvc-basics-4/src/main/java/com/baeldung/optionalpathvars/ArticleViewerWithRequiredAttributeController.java b/spring-web-modules/spring-mvc-basics-4/src/main/java/com/baeldung/optionalpathvars/ArticleViewerWithRequiredAttributeController.java
index 7548747f05..786a56c130 100644
--- a/spring-web-modules/spring-mvc-basics-4/src/main/java/com/baeldung/optionalpathvars/ArticleViewerWithRequiredAttributeController.java
+++ b/spring-web-modules/spring-mvc-basics-4/src/main/java/com/baeldung/optionalpathvars/ArticleViewerWithRequiredAttributeController.java
@@ -4,7 +4,7 @@ import static com.baeldung.optionalpathvars.Article.DEFAULT_ARTICLE;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;;
+import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping(value = "/requiredAttribute")
diff --git a/spring-web-modules/spring-mvc-basics-4/src/main/java/com/baeldung/validation/listvalidation/SpringListValidationApplication.java b/spring-web-modules/spring-mvc-basics-4/src/main/java/com/baeldung/validation/listvalidation/SpringListValidationApplication.java
index f16d5f877f..3d518c467c 100644
--- a/spring-web-modules/spring-mvc-basics-4/src/main/java/com/baeldung/validation/listvalidation/SpringListValidationApplication.java
+++ b/spring-web-modules/spring-mvc-basics-4/src/main/java/com/baeldung/validation/listvalidation/SpringListValidationApplication.java
@@ -5,7 +5,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
-@ComponentScan(basePackages = "com.baeldung.validation.listvalidation")
+@ComponentScan(basePackages = "com.baeldung")
@Configuration
@SpringBootApplication
public class SpringListValidationApplication {
diff --git a/spring-web-modules/spring-mvc-basics-4/src/main/resources/templates/secure/view/welcome.html b/spring-web-modules/spring-mvc-basics-4/src/main/resources/templates/secure/view/welcome.html
new file mode 100644
index 0000000000..fac7234f15
--- /dev/null
+++ b/spring-web-modules/spring-mvc-basics-4/src/main/resources/templates/secure/view/welcome.html
@@ -0,0 +1,11 @@
+
+
+
+ Spring Web Contexts
+
+
+
+ Secure Web Application :
+
+
+
\ No newline at end of file
diff --git a/spring-web-modules/spring-mvc-basics-4/src/main/webapp/WEB-INF/view/viewPage.html b/spring-web-modules/spring-mvc-basics-4/src/main/resources/templates/view/viewPage.html
similarity index 58%
rename from spring-web-modules/spring-mvc-basics-4/src/main/webapp/WEB-INF/view/viewPage.html
rename to spring-web-modules/spring-mvc-basics-4/src/main/resources/templates/view/viewPage.html
index 71f766407e..b520d0dd51 100644
--- a/spring-web-modules/spring-mvc-basics-4/src/main/webapp/WEB-INF/view/viewPage.html
+++ b/spring-web-modules/spring-mvc-basics-4/src/main/resources/templates/view/viewPage.html
@@ -4,6 +4,6 @@
Title
- Web Application. Passed parameter : th:text="${message}"
+ Web Application. Passed parameter :