ModelAndView
class used to hold both the data (Model) and view in MVC framework.
HelloWorldController.java
web.xml
hello.jsp
@Controller
@RequestMapping("/hello")
public
class HelloWorldController {
@RequestMapping(method =
RequestMethod.GET)
public ModelAndView printHello() {
ModelAndView modelAndView =
new ModelAndView("hello");
modelAndView.addObject("message",
"Welcome to Spring MVC framework");
return modelAndView;
}
}
For
example, as you see above snippet, ‘printHello’ method return a ModelAndView
instance and it holds the view ‘hello’ and a message "Welcome to Spring
MVC framework". The value returned by ‘printHello’ method is resolved by
DispatcherServlet.
ModelAndView class
provides below constructors
public
ModelAndView()
public
ModelAndView(String viewName)
public
ModelAndView(View view)
public
ModelAndView(String viewName, @Nullable Map<String, ?> model)
public
ModelAndView(View view, @Nullable Map<String, ?> model)
public
ModelAndView(String viewName, HttpStatus status)
public
ModelAndView(@Nullable String viewName, @Nullable Map<String, ?> model, @Nullable
HttpStatus status)
public
ModelAndView(String viewName, String modelName, Object modelObject)
public
ModelAndView(View view, String modelName, Object modelObject)
Find
the below working application.
package com.sample.myApp.controllers; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView; @Controller @RequestMapping("/hello") public class HelloWorldController { @RequestMapping(method = RequestMethod.GET) public ModelAndView printHello() { ModelAndView modelAndView = new ModelAndView("hello"); modelAndView.addObject("message", "Welcome to Spring MVC framework"); return modelAndView; } }
index.jsp
<html> <body> <h2>Hello World!</h2> </body> </html>
Create
web.xml, HelloWorld-servlet.xml files under WEB-INF directory.
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>Spring MVC Hello WorldApplication</display-name> <servlet> <servlet-name>HelloWorld</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>HelloWorld</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
HelloWorld-servlet.xml
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <context:component-scan base-package="com.sample.myApp" /> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/" /> <property name="suffix" value=".jsp" /> </bean> </beans>
Create
hello.jsp under WEB-INF/jsp folder.
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Hello World Spring Web MVC</title> </head> <body> <h2>${message}</h2> </body> </html>
Project
structure looks like below.
Run
the application springdemo and hit the url
‘http://localhost:8080/springdemo/hello’, you can able to see the
message ‘Welcome to Spring MVC framework’.
No comments:
Post a Comment