`
esffor
  • 浏览: 1351969 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring MVC 的三种映射控制器

阅读更多

在spring mvc 框架中我们可以使用三种url mapping的控制器

(1)BeanNameUrlHandlerMapping 默认控制器,方式是将表现层的url和bean name绑定在一起
(2)SimpleUrlHandlerMapping  通过properties形式配置url mapping和controller的映射
(3)CommonsHandlerMappingy 使用元数据的方式

我们的action

 

package Action;

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

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
import org.springframework.web.servlet.DispatcherServlet;


public class HomeController implements Controller ...{
    
private String greeting;
    
    
public String getGreeting() ...{
        
return greeting;
    }


    
public void setGreeting(String greeting) ...{
        
this.greeting = greeting;
    }


    
public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception ...{    
        
return new ModelAndView("home","message",greeting);
    }

    
}
  

 

JSP页面 命名为home.jsp因为ModelAndView对象中的视图逻辑名为home

 

<%...@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%...
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  
<head>
    
<base href="<%=basePath%>">
    
    
<title>My JSP 'index.jsp' starting page</title>
    
<meta http-equiv="pragma" content="no-cache">
    
<meta http-equiv="cache-control" content="no-cache">
    
<meta http-equiv="expires" content="0">    
    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    
<meta http-equiv="description" content="This is my page">
    
<!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    
-->
  
</head>
  
  
<body>
    ${message}
<br>
  
</body>
</html>

 

web.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app 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"
>
  
<context-param>
    
<param-name>contextConfigLocation</param-name>
    
<param-value>/WEB-INF/train-service.xml,/WEB-INF/train-data.xml,/WEB-INF/train-servlet.xml</param-value>
  
</context-param>
  
<servlet>
    
<servlet-name>train</servlet-name>
    
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    
<load-on-startup>0</load-on-startup>
  
</servlet>
  
<servlet-mapping>
     
<servlet-name>train</servlet-name>
     
<url-pattern>*.mvc</url-pattern>
  
</servlet-mapping>
  
<welcome-file-list>
    
<welcome-file>index.jsp</welcome-file>
  
</welcome-file-list>
</web-app>

 

train-servlet.xml  前缀为train,因为web.xml中servlet-name为train

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd" >
<beans>
<!-- 使用BeanNameUrlHandlerMapping控制器
<bean id="beanNameUrlMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<bean name="/home.mvc" class="Action.HomeController">
  <property name="greeting">
    <value>wlcome to spring mvc</value>
  </property>
</bean>
 
-->

<!-- 使用SimpleUrlHandlerMapping控制器 -->
<bean id="HomeController" class="Action.HomeController">
  
<property name="greeting">
    
<value>wlcome to spring mvc</value>
  
</property>
</bean>
<bean id="simpleUrlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
 
<property name="mappings">
   
<props>
     
<prop key="/home.mvc">HomeController</prop>
   
</props>
 
</property>
</bean>

<!-- 使用commonsHandlerMappingy元数据控制器,需要jakarta common attributes包 -->
<bean id="urlMapping" class="org.springframework.web.servlet.handler.metadata.CommonsPathMapHandlerMapping"/>
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  
<property name="prefix">
    
<value>/jsp/</value>
  
</property>
  
<property name="suffix">
    
<value>.jsp</value>
  
</property>
</bean>
</beans>

 

需要注意的是,如果我们是用元数据方式,需要更改我们的action为

 

package Action;

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

import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractCommandController;


/** *//**
 * @@org.springframework.web.servlet.handler.commonsattributes.PathMap("/home.mvc");
 
*/

public class HomeController extends AbstractCommandController ...{
    
private String greeting;
    
    
public String getGreeting() ...{
        
return greeting;
    }


    
public void setGreeting(String greeting) ...{
        
this.greeting = greeting;
    }



    
protected ModelAndView handle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, BindException arg3) throws Exception ...{
        
// TODO 自动生成方法存根
        return null;
    }


    
protected ModelAndView handleRequestInternal(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception ...{
        
return new ModelAndView("home","message",greeting);
    }



    
}
  


分享到:
评论

相关推荐

    Spring MVC入门教程

    个人认为相当适合入门和知识巩固!! 一、前言 ...十八、spring mvc 多视图控制器 十九、 &lt;mvc:annotation-driven /&gt; 到底做了什么工作 二十、 本文中springMVC.xml配置文件是核心,这里给一个下载地址

    Spring MVC 教程 快速入门 深入分析

    Spring MVC 教程 快速入门 深入分析 目录 一、前言 二、spring mvc 核心类与接口 三、spring mvc 核心流程图 ...十八、spring mvc 多视图控制器 十九、 &lt;mvc:annotation-driven /&gt; 到底做了什么工作

    SpringMVC框架架构介绍

    一、前言 二、spring mvc 核心类与接口 三、spring mvc 核心...十八、spring mvc 多视图控制器 十九、 &lt;mvc:annotation-driven /&gt; 到底做了什么工作 二十、 本文中springMVC.xml配置文件是核心,这里给一个下载地址

    Spring MVC+MyBatis开发从入门到项目实战

    第3篇是Spring MVC技术入门,包括Spring MVC的背景介绍、架构整体剖析、环境搭建、处理器与映射器的讲解、前端控制器的源码分析、多种视图解析器的介绍、请求映射与参数绑定的介绍、Validation校验与异常处理和拦截...

    springmvc控制器映射

    spring mvc视频 之控制器映射

    全面掌握Spring MVC:从基础到高级的实践指南

    在Spring MVC中,DispatcherServlet作为前端控制器,负责请求的接收和响应结果的处理。处理器映射器(HandlerMapping)和处理器适配器(HandlerAdapter)是核心组件,负责找到和调用适当的处理器(Controller)。 ...

    Spring MVC 3.0实战指南.ppt

    Spring MVC进行映射的依据 通过URL限定:URL表达式 通过URL限定:绑定{xxx}中的值 通过请求方法限定:请求方法 通过请求方法限定:代码示例 通过请求方法限定:模拟请求方法 通过请求/请求头参数限定:示例 通过请求/请求...

    Spring MVC的教程项目代码

    奉上学习Spring MVC 3.0的技术资料PPT资料,我花了两天写成,该资料根据最新拙作的《Spring 3.x 企业应用开发实战 》写成,仅需要1个小时左右的时间,就可以让你学习到Spring MVC 3.0的所有知识点和新功能,强烈推荐...

    使用Spring MVC和JSP构建的全栈RSS阅读器Web应用程序(95分以上课程大作业).zip

    它采用MVC(Model-View-Controller,模型-视图-控制器)的架构模式,将应用程序分为模型层、视图层和控制器层,提供了处理请求、渲染视图和管理流程的功能。 3. MyBatis框架:MyBatis是一个持久层框架,用于与数据库...

    Spring MVC MyBatis

    第三部分重点介绍了Spring MVC4+MyBatis 3的整合,并示范开发了一个包含6个表、表之间具有复杂的关联映射关系,且业务功能也相对完善的HRM人事管理系统案例,希望让读者理论联系实际,将这两个框架真正运用到实际...

    Spring3MVC注解教程.ppt

    Spring MVC进行映射的依据 通过URL限定:URL表达式 通过URL限定:绑定{xxx}中的值 通过请求方法限定:请求方法 通过请求方法限定:代码示例 通过请求方法限定:模拟请求方法 通过请求/请求头参数限定:示例 通过...

    Spring Web MVC入门教程

    第三章:注解式控制器开发详解 包括:注解式开发HelloWorld、处理器定义、请求映射、REST风格支持、请求数据映射、数据绑定等诸多内容 第四章:数据类型转换 包括:简介、内建类型转换器、自定义类型转换器等 第五...

    SpringMVC入门教程

    SpringMVC: 一、前言 二、spring mvc 核心类与接口 ...十八、 spring mvc 多视图控制器 十九、 &lt;mvc:annotation-driven /&gt; 到底做了什么工作 二十、 本文中springMVC.xml配置文件是核心,这里给一个下载地址

    Spring+MVC+Mybatis 书城项目

    Spring MVC: Spring MVC是Spring框架的一个模块,它实现了MVC(模型-视图-控制器)设计模式,用于构建Web应用。Spring MVC允许你将应用的逻辑、数据和用户界面分离,使得代码更加清晰和易于维护。 MyBatis: MyBatis...

    spring mvc 3.2 参考文档

    Spring的视图解析也非常灵活,控制器通常负责准备含有数据的model Map并选择一种视图名称,当然,它也可以直接直接写响应流,并完成该请求。视图名称解析可以根据文件扩展名或者Accept头内容类型协商,通过bean的...

    springmvc demo

    Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发...

    spring mvc 思维导图

    Spring的模型-视图-控制器(MVC)框架是围绕一个DispatcherServlet来设计的,这个Servlet会把请求分发给各个处理器,并支持可配置的处理器映射、视图渲染、本地化、时区与主题渲染等,甚至还能支持文件上传。...

    Spring-MVC技术体系介绍(三)

    中文叫做一次性控制器,也就像一次性筷子那样用完即丢 并不在Spring的Controller继承架构中,而是一个独立的接口定义 当映射的不是一个model 对象时很有用 Bean的作用域必须是prototype ,他们本身不是线程安全的

    Java之Spring Boot详解

    (2)在 web.xml 文件中配置 Spring mvc 的前端控制器 (3)创建一个 spring mvc 的配置文件 (4)在 spring mvc 的配置文件中进行相关配置   1) 配置注解扫描路径   2)配置处理器映射器   3)配置处理器...

    SpringMVC教程

    第六章 注解式控制器详解2(SpringMVC3强大的请求映射规则详解).pdf 第六章 注解式控制器详解3(生产者、消费者请求限定).pdf 第六章 注解式控制器详解4(SpringMVC强大的数据绑定1).pdf 第六章 注解式控制器详解5...

Global site tag (gtag.js) - Google Analytics