1. 程式人生 > >SpringMVC 處理映射

SpringMVC 處理映射

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{任何字母}.htmlDispatcherServlet將請求轉發到HelloController類。
  • 對於/welcome.htmlDispatcherServlet會將請求轉發給WelcomeController類。
  • 對於/welcome1.htmlDispatcherServlet將不會找到任何控制器,服務器將拋出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 處理映射