SpringMVC 處理映射
阿新 • • 發佈:2018-01-29
app char hello fff ride 狀態 ops pri name 的代碼如下所示 -
一、Spring MVC控制器名稱處理映射
以下示例展示如何利用Spring MVC 框架使用控制器名稱處理程序映射。
ControllerClassNameHandlerMapping類是基於約定的處理程序映射類,它將URL請求映射到配置中提到的控制器的名稱。這個類接受控制器名稱並將其轉換為帶有前導“/
”的小寫形式。 例如HelloController
映射到URL: “/hello*
”。
采用如下配置:
<!--視圖解析器--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean> <!--Bean配置--> <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/> <bean class="com.ktao.springmvc.HelloController"/> <bean class="com.ktao.springmvc.WelcomeController"/>
例如,使用上面的配置,URL:
- 對於
/helloWorld.html
或/hello{任何字母}.html
,DispatcherServlet
將請求轉發到HelloController
類。 - 對於
/welcome.html
,DispatcherServlet
會將請求轉發給WelcomeController
類。 - 對於
/welcome1.html
,DispatcherServlet
將不會找到任何控制器,服務器將拋出404
狀態錯誤。
工程目錄:
HelloController.java
package com.ktao.springmvc; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.AbstractController; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class HelloController extends AbstractController { @Override protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView model = new ModelAndView("hello"); model.addObject("message", "Hello World!"); return model; } }
WelcomeController.java 的代碼如下所示 -
package com.ktao.springmvc; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.AbstractController; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class WelcomeController extends AbstractController { @Override protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView model = new ModelAndView("welcome"); model.addObject("message", "Welcome!"); return model; } }
dispatcher-servlet.xml 的代碼如下所示-
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" 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.xsd"> <!--視圖解析器--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean> <!--Bean配置--> <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/> <bean class="com.ktao.springmvc.HelloController"/> <bean class="com.ktao.springmvc.WelcomeController"/> </beans>
hello.jsp 的代碼如下所示 -
<%@ page contentType="text/html; charset=UTF-8" %> <html> <head> <title>Hello World</title> </head> <body> <h2>${message}</h2> </body> </html>
welcome.jsp 的代碼如下所示 -
<%@ page contentType="text/html; charset=UTF-8" %> <html> <head> <title>Welcome</title> </head> <body> <h2>${message}</h2> </body> </html>
運行結果:
二、Spring MVC簡單URL處理程序映射
以下示例顯示如何使用Spring Web MVC框架來實現一個簡單URL處理程序映射。 SimpleUrlHandlerMapping
類分別顯式地將URL
映射到相應的控制器上。
修改dispatcher-servlet.xml 的代碼如下所示-
<beans> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean> <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <prop key="/welcome.html">welcomeController</prop> <prop key="/helloWorld.html">helloController</prop> </props> </property> </bean> <bean id="helloController" class="com.yiibai.springmvc.HelloController" /> <bean id="welcomeController" class="com.yiibai.springmvc.WelcomeController"/> </beans>
SpringMVC 處理映射