鍍金池/ 教程/ Java/ Spring MVC Bean名稱Url處理程序映射
Spring MVC表單處理
Spring MVC多項(xiàng)單選按鈕
Spring MVC Bean名稱Url處理程序映射
Spring MVC下拉選項(xiàng)(Select)
Spring MVC多動(dòng)作控制器
Spring4 MVC RESTFul Web Services CRUD實(shí)例+RestTemplate
Spring MVC頁(yè)面重定向
Spring MVC資源綁定視圖解析器
Spring4 MVC+Hibernate4 Many-to-many連接表+MySQL+Maven實(shí)例
Spring4 MVC REST服務(wù)示例使用@RestController
Spring MVC文本域
Spring4 MVC + AngularJS使用$http異步服務(wù)交互
Spring4 MVC文件下載實(shí)例
Spring4 MVC表單驗(yàn)證
Spring4 MVC RESTFul WebServices CRUD實(shí)例+RestTemplate
Spring MVC教程
Spring MVC參數(shù)方法名稱解析器
Spring MVC生成JSON數(shù)據(jù)
Spring MVC生成XML
Spring4 MVC 表單驗(yàn)證和資源處理 (使用注解)
Spring MVC單選按鈕
Spring MVC Xml視圖解析器
Spring MVC復(fù)選框
Spring4 MVC ContentNegotiatingViewResolver多種輸出格式實(shí)例
Spring MVC錯(cuò)誤處理
Spring MVC復(fù)選框(多項(xiàng))
Spring MVC Hibernate驗(yàn)證器
Spring4 MVC Hello World注解 (Java Config)實(shí)例
Spring MVC靜態(tài)頁(yè)面
Spring4 MVC ContentNegotiatingViewResolver實(shí)例
Spring MVC列表多選框
Spring MVC生成Excel格式數(shù)據(jù)
Spring MVC文本框
Spring MVC內(nèi)部資源視圖解析器
Spring4 MVC HelloWorld 注解和JavaConfig實(shí)例
Spring4 MVC REST服務(wù)使用@RestController實(shí)例
Spring MVC簡(jiǎn)單URL處理程序映射
Spring MVC4使用Servlet3 MultiPartConfigElement文件上傳實(shí)例
Spring MVC概述
Spring4 MVC使用Servlet 3 MultiPartConfigElement文件上傳實(shí)例
Spring4 MVC Hello WorldXML實(shí)例
Spring MVC屬性方法名稱解析器
Spring4 MVC + Hibernate4 + MySQL + Maven使用注解集成實(shí)例
Spring4 MVC + Hibernate4多對(duì)多連接表+MySQL+Maven實(shí)例
Spring4 MVC+Hibernate4+MySQL+Maven使用注解集成實(shí)例
Spring MVC配置靜態(tài)資源和資源包教程
Spring MVC可參數(shù)化的視圖控制器
Spring MVC生成RSS源
Spring4 MVC文件下載實(shí)例
Spring MVC密碼處理
Spring MVC隱藏字段域
Spring MVC文件上傳教程
Spring MVC多解析器映射
Spring MVC文件上傳處理
Spring4 MVC HelloWord實(shí)例
Spring MVC集成Log4j
Spring4 MVC+ AngularJS CRUD使用$http實(shí)例
Spring MVC - Hello World示例

Spring MVC Bean名稱Url處理程序映射

以下示例顯示如何使用Spring Web MVC框架使用控制器類名稱處理程序映射。 ControllerClassNameHandlerMapping類是基于約定的處理程序映射類,它將URL請(qǐng)求映射到配置中提到的控制器的名稱。這個(gè)類接受控制器名稱并將其轉(zhuǎn)換為帶有前導(dǎo)“/”的小寫(xiě)形式。 例如HelloController映射到URL: “/hello*”。

所下所示配置 -

<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.mvc.support.ControllerClassNameHandlerMapping"/>

   <bean class="com.yiibai.springmvc.HelloController" />

   <bean class="com.yiibai.springmvc.WelcomeController"/>   
</beans>

例如,使用上面的配置,URI:

  • 對(duì)于/helloWorld.html/hello{任何字母}.htmlDispatcherServlet將請(qǐng)求轉(zhuǎn)發(fā)到HelloController類。
  • 對(duì)于/welcome.htmlDispatcherServlet會(huì)將請(qǐng)求轉(zhuǎn)發(fā)給WelcomeController類。
  • 對(duì)于/welcome1.html,DispatcherServlet將不會(huì)找到任何控制器,服務(wù)器將拋出404狀態(tài)錯(cuò)誤。

首先,讓我們使用Eclipse IDE,并按照以下步驟使用Spring Web Framework開(kāi)發(fā)基于動(dòng)態(tài)表單的Web應(yīng)用程序:

  1. 創(chuàng)建一個(gè)名稱為 ControllerClassNameHandlerMapping 的動(dòng)態(tài)WEB項(xiàng)目。
  2. com.yiibai.springmvc 包下創(chuàng)建兩個(gè)Java類HelloControllerWelcomeController。
  3. jsp子文件夾下創(chuàng)建兩個(gè)視圖文件:hello.jspwelcome.jsp
  4. 最后一步是創(chuàng)建所有源和配置文件的內(nèi)容并運(yùn)行應(yīng)用程序,詳細(xì)如下所述。

完整的項(xiàng)目文件目錄結(jié)構(gòu)如下所示 -

HelloController.java 的代碼如下所示 -

package com.yiibai.springmvc;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;

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.yiibai.springmvc;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;

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;
   }
}

ControllerClassNameHandlerMapping-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">

    <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.mvc.support.ControllerClassNameHandlerMapping" />

    <bean class="com.yiibai.springmvc.HelloController" />

    <bean class="com.yiibai.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>

完成創(chuàng)建源和配置文件后,發(fā)布應(yīng)用程序到Tomcat服務(wù)器。

現(xiàn)在啟動(dòng)Tomcat服務(wù)器,現(xiàn)在嘗試訪問(wèn)URL => http://localhost:8080/ControllerClassNameHandlerMapping/helloWorld.html ,如果Spring Web應(yīng)用程序沒(méi)有問(wèn)題,應(yīng)該看到以下結(jié)果:

當(dāng)訪問(wèn)URL => http://localhost:8080/ControllerClassNameHandlerMapping/hello.html , 如果Spring Web應(yīng)用程序沒(méi)有問(wèn)題,應(yīng)該看到以下結(jié)果:

當(dāng)訪問(wèn)URL => http://localhost:8080/ControllerClassNameHandlerMapping/welcome.html , 如果Spring Web應(yīng)用程序沒(méi)有問(wèn)題,應(yīng)該看到以下結(jié)果:

當(dāng)訪問(wèn)URL => http://localhost:8080/ControllerClassNameHandlerMapping/Welcome.html , 如果Spring Web應(yīng)用程序沒(méi)有問(wèn)題,因此沒(méi)有匹配此請(qǐng)求URL, 應(yīng)該會(huì)看到以下結(jié)果: