`
goodsense
  • 浏览: 30632 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Spring mvc 控制器多方法访问

    博客分类:
  • Java
阅读更多

Spring mvc默认配置文件放在/WEB-INF/目录下的,而且其名字的也是有约定的,讲一下修改Spring mvc的默认配置.修改web.xml配置文件即可.其配置如下:

Xml代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app version="2.5"   
  3.     xmlns="http://java.sun.com/xml/ns/javaee"   
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
  5.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
  6.     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  
  7.       
  8.       <servlet>  
  9.         <servlet-name>springmvc</servlet-name>     
  10.         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>   
  11.         <init-param>    
  12.             <param-name>contextConfigLocation</param-name>    
  13.             <param-value>classpath*:/springmvc.xml</param-value>    
  14.         </init-param>  
  15.         <!-- 设置servlet的启动级别 -->  
  16.         <load-on-startup>1</load-on-startup>  
  17.       </servlet>  
  18.       <servlet-mapping>  
  19.         <servlet-name>springmvc</servlet-name>  
  20.         <url-pattern>/</url-pattern>  
  21.       </servlet-mapping>  
  22.     
  23. </web-app>  

 

这里我们在声明DispatcherServlet时给它指定了一个参数,contextConfigLocation是参数名称名字固定,classpath*:/springmvc.xml是指定Spring mvc的配置文件在classpath下.即src下.

 

 


上一章我们说到,控制器要实现Controller接口并实现它的方法,但是如果一个请求对应一个类那Spring就太土了,所以理所当然有其它方法.

 

Java代码  收藏代码
  1. package gd.hz.springmvc.controller;  
  2.   
  3. import javax.servlet.http.HttpServletRequest;  
  4. import javax.servlet.http.HttpServletResponse;  
  5.   
  6. import org.springframework.web.servlet.ModelAndView;  
  7. import org.springframework.web.servlet.mvc.multiaction.MultiActionController;  
  8.   
  9. //继承MultiActionController实现多方法  
  10. public class MultiController extends MultiActionController {  
  11.       
  12.     public ModelAndView add(HttpServletRequest request , HttpServletResponse response)  
  13.     {  
  14.         System.out.println("-------->add") ;  
  15.         return new ModelAndView("add") ;  
  16.     }  
  17.       
  18.     public ModelAndView del(HttpServletRequest request , HttpServletResponse response)  
  19.     {  
  20.         System.out.println("-------->del") ;  
  21.         return new ModelAndView("del") ;  
  22.     }  
  23. }  

 

这里我们继承MultiActionController类,就可以像Struts2那样一个控制器可以对应多个请求.这个我们要在方法中写上HttpServletRequest和HttpServletResponse要不然是不行的.当然有其它更简单的写法,下次再介绍.

 

写完控制器之后,配置我们的spring mvc文件,如下图:

Xml代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"  
  4.     xmlns:context="http://www.springframework.org/schema/context"  
  5.     xmlns:mvc="http://www.springframework.org/schema/mvc"  
  6.     xsi:schemaLocation="        
  7.            http://www.springframework.org/schema/beans        
  8.            http://www.springframework.org/schema/beans/spring-beans-3.0.xsd        
  9.            http://www.springframework.org/schema/context        
  10.            http://www.springframework.org/schema/context/spring-context-3.0.xsd       
  11.            http://www.springframework.org/schema/mvc        
  12.            http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">  
  13.            
  14.     <bean  
  15.         class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
  16.         <property name="prefix" value="/" />  
  17.         <property name="suffix" value=".jsp" />  
  18.     </bean>  
  19.       
  20.     <!-- 声明一个Controller中使用多个方法 -->  
  21.     <bean id="parameterMethodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">  
  22.         <!-- 传参数时用这个作为名称 -->  
  23.         <property name="paramName" value="action"></property>  
  24.     </bean>  
  25.       
  26.     <!-- 声明DispatcherServlet不要拦截下面声明的目录 -->  
  27.     <mvc:resources location="/images/" mapping="/images/**"/>  
  28.       
  29.     <bean name="/mvc/multi.html" class="gd.hz.springmvc.controller.MultiController">  
  30.         <!-- 名字固定 -->  
  31.         <property name="methodNameResolver">  
  32.             <!-- 指定使用的解析器 -->  
  33.             <ref bean="parameterMethodNameResolver"/>  
  34.         </property>  
  35.     </bean>  
  36. </beans>   

 

Xml代码  收藏代码
  1. <bean id="parameterMethodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">  
  2.         <property name="paramName" value="action"></property>  
  3. </bean>  

 

这个方法是告诉容器使用多方法解析,其中的属性值中的action是随意的,例如当我们访问控制器的add方法时,
我们可以这样写:http://localhost/xxxx?action=add ,很明显它的作用就是告诉容器调用那个方法时的参数名称.

 

Xml代码  收藏代码
  1. <bean name="/mvc/multi.html" class="gd.hz.springmvc.controller.MultiController">  
  2.     <!-- 名字固定 -->  
  3.     <property name="methodNameResolver">  
  4.         <!-- 指定使用的解析器 -->  
  5.         <ref bean="parameterMethodNameResolver"/>  
  6.     </property>  
  7. </bean>  

 这里声明我们写的控制器类要使用的解析器.说白了就是注入,url的访问路径是mvc/multi.html

 

Xml代码  收藏代码
  1. <mvc:resources location="/images/" mapping="/images/**"/>  

 特别说明一下这句说,记得我们在web.xml中声明DispatcherServlet拦截所有的请求,也就是说我们的静态资源,比如js文件 图片都会被拦截.这不是我们需要的,而上面这句说是声明那个目录是不用DispatcherServlet拦截的.

 

根据我们spring mvc 中的配置,我们输入url进行测试
http://localhost:88/SpringMVC1/mvc/multi.html?action=del
http://localhost:88/SpringMVC1/mvc/multi.html?action=add
这样他分别访问我们的del 和add 方法

分享到:
评论

相关推荐

    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+Spring mvc+Hibernate+Bootstrap、企业级员工信息管理系统

    后台通过自定义注解结合一个访问拦截器实现整个系统的权限控制 04. 系统前台采用全采用的Html+jQuery开发 05. 系统前台与后台的交互全部使用 Ajax 异步请求 06. 自定义 SecureValid 注解实现权限的控制 07. ...

    mybatis spring mvc volectiy项目视图访问控制spring mvc

    最近学习了一下mybatis结合网上的一些列子搭建的一个网站的框架,前端显示用的velocity引擎,数据访问使用mybatis+oracle,视图访问控制spring mvc,框架主要包括一些基本的增删改操作以及拦截器,项目介绍地址:...

    Spring MVC 3.0实战指南.ppt

    本地化:Spring MVC的本地化解析器 本地化:Spring MVC的本地化解析器 LocaleChangeInterceptor:通过URL参数指定 静态资源处理 静态资源处理:使REST风格的URL成为实现 静态资源处理:原理 静态资源处理:如何配置? ...

    Spring3MVC注解教程.ppt

    本地化:Spring MVC的本地化解析器 LocaleChangeInterceptor:通过URL参数指定 静态资源处理 静态资源处理:使REST风格的URL成为实现 静态资源处理:原理 静态资源处理:如何配置? 静态资源处理:如何配置? 物理...

    spring mvc中文教程

    本文将指导大家如何使用Spring MVC3去构建一个Web应用。在Spring MVC中,所有的用户请求都会被派发到控制器模块,控制器然后再根据业务逻辑去调用数据访问层获得数据,最后通过JSP视图返回。

    Spring MVC简单使用

    本文将指导大家如何使用Spring MVC3去构建一个Web应用。在Spring MVC中,所有的用户请求都会被派发到控制器模块,控制器然后再根据业务逻辑去调用数据访问层获得数据,最后通过JSP视图返回。

    Spring Boot mvc web拦截器实现权限访问控制等功能(csdn)————程序.pdf

    Spring Boot mvc web拦截器实现权限访问控制等功能(csdn)————程序

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

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

    SingleJDBCBase 基于Spring Framework基础上搭建的一个Java基础开发套件

    SingleJDBCBase 是基于Spring Framework基础上搭建的一个Java基础开发套件,以Spring MVC为模型视图控制器,JDBC为数据访问层。 * 核心框架:Spring Framework 4.2.7 * 安全框架: * 视图框架:Spring MVC 4.2.7 * ...

    使用Spring MVC3构建Web应用详细教程

    本文将指导大家如何使用Spring MVC3去构建一个Web应用。在Spring MVC中,所有的用户请求都会被派发到控制器模块,控制器然后再根据业务逻辑去调用数据访问层获得数据,最后通过JSP视图返回。

    SpringMVC入门教程

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

    Spring MVC 学习笔记

    1、 首先用户发送请求,前端控制器DispatcherServlet收到请求后自己不进行处理,而是委托给其他的解析器进行处理,前端控制器作为统一访问点,进行全局的流程控制; 2、 DispatcherServlet把请求转交给...

    spring-mvc 注解方式xml配置

    使用spring-mvc 注解方式 注入 Controller 控制器 访问路径 精确到方法名 无需 多余注解 简单方便 附带实例

    spring mvc

    :为构建高效、灵活且易于使用的模型-视图-控制器(MVC)模式实现机制,提出一种基于Spring 框架的MVC 框架。该框架使用JSP 技术构建视图层,采用总体控制与局部控制相结合的方法增强控制层的功能,采用O/R Mapping 类...

    Web开发工具和方法课程的学术项目Java、Spring、Hibernate、Angular

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

    高级Spring Boot和Spring Cloud微服务示例 Zuul上的API Swagger2

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

Global site tag (gtag.js) - Google Analytics