In case you want to use a Multiple View Resolver in a Spring MVC application then priority order can be set using the order property. The following example shows how to use the ResourceBundleViewResolver and the InternalResourceViewResolver in the Spring Web MVC Framework.
<bean class = "org.springframework.web.servlet.view.ResourceBundleViewResolver"> <property name = "basename" value = "views" /> <property name = "order" value = "0" /> </bean> <bean class = "org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name = "prefix" value = "/WEB-INF/jsp/" /> <property name = "suffix" value = ".jsp" /> <property name = "order" value = "1" /> </bean>
Here, the order property defines the ranking of a view resolver. In this, 0 is the first resolver and 1 is the next resolver and so on.
hello.(class) = org.springframework.web.servlet.view.JstlView hello.url = /WEB-INF/jsp/hello.jsp
For example, using the above configuration, if URI −
/hello is requested, DispatcherServlet will forward the request to the hello.jsp defined by bean hello in views.properties.
To start with, let us have a working Eclipse IDE in place and consider the following steps to develop a Dynamic Form based Web Application using the Spring Web Framework.
Step | Description |
---|---|
1 | Create a project with a name TestWeb under a package com.howcodex as explained in the Spring MVC - Hello World chapter. |
2 | Create a Java class HelloController under the com.howcodexpackage. |
3 | Create a view file hello.jsp under the jsp sub-folder. |
4 | Create a properties file views.properties under the SRC folder. |
5 | Download the JSTL library jstl.jar. Put it in your CLASSPATH. |
6 | The final step is to create the content of the source and configuration files and export the application as explained below. |
package com.howcodex; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.ui.ModelMap; @Controller @RequestMapping("/hello") public class HelloController{ @RequestMapping(method = RequestMethod.GET) public String printHello(ModelMap model) { model.addAttribute("message", "Hello Spring MVC Framework!"); return "hello"; } }
<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.howcodex" /> <bean class = "org.springframework.web.servlet.view.ResourceBundleViewResolver"> <property name = "basename" value = "views" /> <property name = "order" value = "0" /> </bean> <bean class = "org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name = "prefix" value = "/WEB-INF/jsp/" /> <property name = "suffix" value = ".jsp" /> <property name = "order" value = "1" /> </bean> </beans>
hello.(class) = org.springframework.web.servlet.view.JstlView hello.url = /WEB-INF/jsp/hello.jsp
<%@ page contentType = "text/html; charset = UTF-8" %> <html> <head> <title>Hello World</title> </head> <body> <h2>${message}</h2> </body> </html>
Once you are done with creating source and configuration files, export your application. Right click on your application, use Export → WAR File option and save your HelloWeb.war file in Tomcat's webapps folder.
Now, start the Tomcat server and make sure you are able to access other webpages from the webapps folder using a standard browser. Try to access the URL − http://localhost:8080/HelloWeb/hello, if everything is fine with the Spring Web Application, we will see the following screen.