冰冻三尺非一日之寒。对技术的学习尤其得遵循这么一个理。在《SpringMVC一路总结(一)》中,清楚的总结了SpringMVC的入门案例,对于这类入门demo,理清套路,整理思绪是最为重要的。能够从案例中了解到SpringMVC在框架技术中的特点和应用,就是第一部分的主要作用。

从上部分可以看出,每个Controller中只能写一个方法,这个Controller是实现Controller中的方法handleRequest。然而对于这种形式的分布和配置,一旦项目中的功能增多,很难准确的定位方法的请求,而且维护也很麻烦,因此,这样的实际应用特点并不明显。今天的这部分就是主要解决这样的问题的。本博文为本人学习的总结,请尊重劳动成果。欢迎转载,请保留博文出处:http://www.cnblogs.com/itred ;本人邮箱: it_red@sina.com 。

那么,问题来了!如何在一个Controller中写入多个方法呢?

其实在SpringMVC中已经写好了,只需要继承其中的MultiActionController,这个的具体类在org.springframework.web.servlet.mvc.multiaction目录下。在spring的JAR包中,可以清楚的找到这个类。

  

还是从案例上来说吧,要实现这么一个多方法的Controller,基本原理和第一部分的案例相同。只是需要简单修改一些配置文件和重新写Controller就行了。

SpringMVC-servlet.xml的配置为:

<bean id="paramMethodResolver"
class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
<property name="paramName" value="action"></property>
</bean>
<bean name="/test" class="com.red.controller.MultiController">
<property name="methodNameResolver">
<ref bean="paramMethodResolver" />
</property>
</bean>

上面的bean 中id为paramMethodResolver 就是配置一个Controller类中实现多个方法的重点。

在Controller中继承MultiActionController的源码如下:

package com.red.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController; public class MultiController extends MultiActionController {
public ModelAndView First(HttpServletRequest request,
HttpServletResponse response) {
String method = "First";
System.out.println("using First method::" + method);
return new ModelAndView("/test", "param", method);
}
public ModelAndView Second(HttpServletRequest request,
HttpServletResponse response) {
String method = "Second";
System.out.println("using Second method::" + method);
return new ModelAndView("/test", "param", method);
}
}

浏览器中输入地址:http://localhost:8080/20150507_SpringMVC01/test?action=First

实现效果如下:

    

浏览器中输入地址:http://localhost:8080/20150507_SpringMVC01/test?action=Second

实现效果如下:

    

控制台中输出的结果:

    

其实在开发过程中遇到最多的问题,往往不是这些技术性问题。需要注意一点细节的地方,很多人在刚接触SpringMVC的时候,图片,js以及css类的文件基本都会出问题,在页面上不能正常的在浏览器中显示理想的效果。然而,实际上是因为在配置文件中少了一些配置,或者配置的时候没有配置正确。

即,需要在SpringMVC-servlet.xml中加入以下源码:

<mvc:resources location="/img/" mapping="/img/**" />

Location中是文件的实际存放路径,mapping是指的是映射图片文件 夹。对于其他的如css和js类的文件用同样的方法就可以。

实际效果如下:

    

===================================================================

在这部分以及上一部分都是通过xml的形式来配置实现的,然而xml并不是实现SpingMVC的最佳方式,其实注解才是其特点。如果利用注解的形式来实现就可以清楚的看到SpringMVC框架的优点,简单,而且还适用。关于注解的形式会在后续的总结中给出案例。

Demo下载

感谢奋斗中的自己!


  邮箱:it_red@sina.com
个人博客: http://itred.cnblogs.com
版权声明:本文版权归作者和博客园共有,欢迎转载,但请在文章显眼位置标明文章出处。未经本人书面同意,将其作为他用,本人保留追究责任的所有权利。

SpringMVC一路总结(二)的更多相关文章

  1. SpringMVC一路总结(三)

    在博文<SpringMVC一路总结(一)>和<SpringMVC一路总结(二)>中,该框架的应用案例都是是基于xml的形式实现的.然而,对于大型项目而言,这种xml的配置会增加 ...

  2. SpringMVC一路总结(

    SpringMVC一路总结(三) 在博文<SpringMVC一路总结(一)>和<SpringMVC一路总结(二)>中,该框架的应用案例都是是基于xml的形式实现的.然而,对于大 ...

  3. SpringMVC一路总结(一)(转)

    itRed You are never too old to set another goal or to dream a new dream. SpringMVC一路总结(一) SpringMVC听 ...

  4. SpringMVC入门学习(二)

    SpringMVC入门学习(二) ssm框架 springMVC  在上一篇博客中,我简单介绍了一下SpringMVC的环境配置,和简单的使用,今天我们将进一步的学习下Springmvc的操作. mo ...

  5. 使用IntelliJ IDEA开发SpringMVC网站(二)框架配置

    原文:使用IntelliJ IDEA开发SpringMVC网站(二)框架配置 摘要 讲解如何配置SpringMVC框架xml,以及如何在Tomcat中运行 目录[-] 文章已针对IDEA 15做了一定 ...

  6. (转)SpringMVC学习(十二)——SpringMVC中的拦截器

    http://blog.csdn.net/yerenyuan_pku/article/details/72567761 SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter, ...

  7. SpringMVC一路总结(一)

    SpringMVC听闻已久,早在去年就被学长问到关于SpringMVC的基础知识,当时也没在意.主要是工作中也没有用到关于SpringMVC的技术,因此免于没有时间和精力的借口就没有接触和学习Spri ...

  8. springMVC学习笔记(二)-----注解和非注解入门小程序

    最近一直在做一个电商的项目,周末加班,忙的都没有时间更新博客了.终于在上周五上线了,可以轻松几天了.闲话不扯淡了,继续谈谈springMvc的学习. 现在,用到SpringMvc的大部分使用全注解配置 ...

  9. SpringMVC学习(二)

    SpringMVC入门(注解方式) 需求 实现商品查询列表功能. 第一步:创建Web项目 springmvc02 第二步:导入jar包 第三步:配置前端控制器 在WEB-INF\web.xml中配置前 ...

随机推荐

  1. Javascript 的执行环境(execution context)和作用域(scope)及垃圾回收

    执行环境有全局执行环境和函数执行环境之分,每次进入一个新执行环境,都会创建一个搜索变量和函数的作用域链.函数的局部环境不仅有权访问函数作用于中的变量,而且可以访问其外部环境,直到全局环境.全局执行环境 ...

  2. 【小计】新人Tostring前忘记Null判断的处理

    ToString和string.Concat(可屏蔽Null的异常)性能相差不大,一些中小项目完全可以用Concat(新人容易忘记判断Null的情况,遇到太多了,所以建议重写tostring方法,内部 ...

  3. ifconfig: command not found(CentOS专版,其他的可以参考)

    ifconfig: command not found 查看path配置(echo相当于c中的printf,C#中的Console.WriteLine) echo $PATH 解决方案1:先看看是不是 ...

  4. Modify Branding of FreeCAD

    Modify Branding of FreeCAD eryar@163.com This article describes the Branding of FreeCAD. Branding me ...

  5. WPF 微信 MVVM

    公司的同事离职了,接下来的日子可能会忙碌,能完善DEMO的时间也会少了,因此,把做的简易DEMO整体先记录一下,等后续不断的完善. 参考两位大神的日志:WEB版微信协议部分功能分析.[完全开源]微信客 ...

  6. Android总结之链式调用(方法链)

    前言: 最近在学习总结Android属性动画的时候,发现Android的属性动画设计采用了链式调用的方式,然后又回顾了一下了以前接触的开源框架Glide也是采用链式调用的方式,还有最近火的一塌糊涂的R ...

  7. 从零开始编写自己的C#框架(25)——网站部署

    导航 1.关掉访问保护 2.发布网站 3.复制网站到服务器 4.添加新网站 5.设置网站访问权限 6.设置文件夹访问权限 7.控制可更新文件夹执行权限 8.设置“应用程序池”.net版本与模式 9.附 ...

  8. 计算机程序的思维逻辑 (60) - 随机读写文件及其应用 - 实现一个简单的KV数据库

    57节介绍了字节流, 58节介绍了字符流,它们都是以流的方式读写文件,流的方式有几个限制: 要么读,要么写,不能同时读和写 不能随机读写,只能从头读到尾,且不能重复读,虽然通过缓冲可以实现部分重读,但 ...

  9. 独立开发 一个社交 APP 的架构分享 (已实现)

    (本博客为原创:http://www.cnblogs.com/linguanh/)   My BananaCloud Android Application 前言:  这算是我的第一个 完完全全 由自 ...

  10. 初识的Spring Mvc-----原理

    一.Spring Mvc简介 Spring Mvc(Spring Web Mvc) 属于表现层的框架. 二.Spring结构图 Spring Mvc是Spring框架里面web模块的一部分,是在Spr ...