diff --git a/spring-all/src/main/java/org/baeldung/controller/controller/PassParametersController.java b/spring-all/src/main/java/org/baeldung/controller/controller/PassParametersController.java
new file mode 100644
index 0000000000..54047cedf3
--- /dev/null
+++ b/spring-all/src/main/java/org/baeldung/controller/controller/PassParametersController.java
@@ -0,0 +1,38 @@
+package org.baeldung.controller.controller;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.servlet.ModelAndView;
+
+/**
+ * In this controller, Model, ModelMap and ModelAndView are shown as examples.
+ * They are all used to pass parameters to JSP pages.
+ * 04/09/2017
+ *
+ * @author Ahmet Cetin
+ */
+@Controller
+public class PassParametersController {
+ @RequestMapping(value = "/showViewPage", method = RequestMethod.GET)
+ public String passParametersWithModel(Model model) {
+ model.addAttribute("message", "Baeldung");
+ return "viewPage";
+ }
+
+ @RequestMapping(value = "/printViewPage", method = RequestMethod.GET)
+ public String passParametersWithModelMap(ModelMap map) {
+ map.addAttribute("welcomeMessage", "welcome");
+ map.addAttribute("message", "Baeldung");
+ return "viewPage";
+ }
+
+ @RequestMapping(value = "/goToViewPage", method = RequestMethod.GET)
+ public ModelAndView passParametersWithModelAndView() {
+ ModelAndView modelAndView = new ModelAndView("viewPage");
+ modelAndView.addObject("message", "Baeldung");
+ return modelAndView;
+ }
+}
\ No newline at end of file
diff --git a/spring-all/src/main/webapp/WEB-INF/view/viewPage.jsp b/spring-all/src/main/webapp/WEB-INF/view/viewPage.jsp
new file mode 100644
index 0000000000..ca638b33f5
--- /dev/null
+++ b/spring-all/src/main/webapp/WEB-INF/view/viewPage.jsp
@@ -0,0 +1,11 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+ Title
+
+
+
+ Web Application. Passed parameter : ${message}
+
+
+
diff --git a/spring-all/src/test/java/org/baeldung/controller/PassParametersControllerTest.java b/spring-all/src/test/java/org/baeldung/controller/PassParametersControllerTest.java
new file mode 100644
index 0000000000..76ac14f292
--- /dev/null
+++ b/spring-all/src/test/java/org/baeldung/controller/PassParametersControllerTest.java
@@ -0,0 +1,69 @@
+package org.baeldung.controller;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.web.WebAppConfiguration;
+import org.springframework.test.web.servlet.MockMvc;
+import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
+import org.springframework.test.web.servlet.setup.MockMvcBuilders;
+import org.springframework.web.context.WebApplicationContext;
+import org.springframework.web.servlet.ModelAndView;
+
+/**
+ * This is the test class for {@link org.baeldung.controller.controller.PassParametersController} class.
+ * 09/09/2017
+ *
+ * @author Ahmet Cetin
+ */
+@RunWith(SpringJUnit4ClassRunner.class)
+@WebAppConfiguration
+@ContextConfiguration({"classpath:test-mvc.xml"})
+public class PassParametersControllerTest {
+ private MockMvc mockMvc;
+
+ @Autowired
+ private WebApplicationContext wac;
+
+ @Before
+ public void setUp() {
+ this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build();
+ }
+
+ @Test
+ public void testPassParametersWithModel() throws Exception {
+ ModelAndView mv = this.mockMvc.perform(MockMvcRequestBuilders.get("/showViewPage")).andReturn().getModelAndView();
+
+ //Validate view
+ Assert.assertEquals(mv.getViewName(), "viewPage");
+
+ //Validate attribute
+ Assert.assertEquals(mv.getModelMap().get("message").toString(), "Baeldung");
+ }
+
+ @Test
+ public void testPassParametersWithModelMap() throws Exception {
+ ModelAndView mv = this.mockMvc.perform(MockMvcRequestBuilders.get("/printViewPage")).andReturn().getModelAndView();
+
+ //Validate view
+ Assert.assertEquals(mv.getViewName(), "viewPage");
+
+ //Validate attribute
+ Assert.assertEquals(mv.getModelMap().get("message").toString(), "Baeldung");
+ }
+
+ @Test
+ public void testPassParametersWithModelAndView() throws Exception {
+ ModelAndView mv = this.mockMvc.perform(MockMvcRequestBuilders.get("/goToViewPage")).andReturn().getModelAndView();
+
+ //Validate view
+ Assert.assertEquals(mv.getViewName(), "viewPage");
+
+ //Validate attribute
+ Assert.assertEquals(mv.getModelMap().get("message").toString(), "Baeldung");
+ }
+}