第一种:不配置controller 的bean。(注解的方式)

在dispatch-servlet.xml中,在beans节点下配置context:component-scan节点

<!-- 启用spring注解-->
<context:component-scan base-package="com.loong.controller" />

这种方式需要在Controller对象上使用@RequestMapping("hello")指定方法对应处理的路径,比如一下两种方式:

举例1:url:http://localhost:8080/demo1/welcome/hello

@Controller
@RequestMapping("/welcome")
public class HelloWorldController {
@RequestMapping(value="/hello" ,method=RequestMethod.GET)
public String printWelcome(ModelMap model){
model.addAttribute("message" ,"Spring 3 MVC Hello World");
return "hello";
}
}

举例2:url:http://localhost:8080/demo1/home

@Controller
public class HomeController {
@RequestMapping("home")
public String home(){
return "home";
}
}

  

第二种方式配置controller的bean(url匹配bean)
在xxx-servlet.xml中

<context:component-scan base-package="com.controller" />
<!-- HandlerMapping -->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
<!-- HandlerAdapter -->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" />
<!-- 处理器 -->
<bean name="/hello" class="com.controller.HelloWorldController" />

BeanNameUrlHandlerMapping:表示将请求的URL和Bean名字映射,如URL为 “上下文/hello”,则Spring配置文件必须有一个名字为“/hello”的Bean,上下文默认忽略。

SimpleControllerHandlerAdapter:表示所有实现了org.springframework.web.servlet.mvc.Controller接口的Bean可以作为Spring Web MVC中的处理器。如果需要其他类型的处理器可以通过实现HadlerAdapter来解决。

提示:关于写不写HandlerMapping 和HandlerAdapter的问题,参考:
http://www.imooc.com/article/4293

这种情况Controller类要实现Controller接口:

public class HelloWorldController implements Controller {
@Override
public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse resp) throws Exception {
// TODO Auto-generated method stub
ModelAndView mv = new ModelAndView();
mv.addObject("message", "HelloWorld");
mv.setViewName("hello");
return mv;
} }

  

第三种配置Controller中bean的方式,使用一个统一配置集合,对各个URL对应的Controller做关系映射

在xxx-servlet中

<bean id="loginController" class="com.msm2.controller.LoginController" />
<bean id="mainController" class="com.msm2.controller.MainController" />
<bean id="handlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="login">loginController</prop>
<prop key="userLogin">mainController</prop>
</props>
</property>
</bean>

在Controller类中
url:http://localhost:8080/msm2/login

@Controller
public class LoginController extends AbstractController{
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response)
throws Exception {
ModelAndView mav = new ModelAndView();
mav.addObject("login");
return mav;
}
}

原文地址:http://www.cnblogs.com/ysloong/p/6388962.html

springMVC controller配置方式总结的更多相关文章

  1. 1.springMVC Controller配置方式

    一.手动配置方式 1.web.xml中DispatcherServlet控制器的的配置 SpringMVC也是一种基于请求驱动的WEB框架,并且使用了前端控制器的设计模式.前端控制器就是Dispatc ...

  2. Spring MVC Controller配置方式

    第一种 URL对应Bean如果要使用此类配置方式,需要在XML中做如下样式配置 以上配置,访问/hello.do就会寻找ID为/hello.do的Bean,此类方式仅适用小型的应用系统 第二种 为UR ...

  3. SpringMVC Controller配置方法有哪几种

    第一种 URL对应Bean 如果要使用此类配置方式,需要在XML中做如下样式配置 <!-- 表示将请求的URL和Bean名字映射--> <bean class="org.s ...

  4. SpringMVC初写(一)SpringMVC的配置方式

    1.Spring概述a)SpringMVC是什么?SpringMVC是Spring框架内置的MVC实现.SpringMVC就是一个Spring内置的MVC子框架MVC:Model-View-Contr ...

  5. SpringMVC:Controller配置总结

    西部开源-秦疆老师:SpringMVC系列博客 , 秦老师交流Q群号: 664386224 未授权禁止转载!编辑不易 , 转发请注明出处!防君子不防小人,共勉! SpringMVC:Controlle ...

  6. springmvc的系统学习之配置方式

    资源:尚学堂  邹波 springmvc框架视频  一.springMVC 工作流程        页面请求---->控制器(Controller DispatcherServlet)----& ...

  7. SpringMVC的注解方式配置

    SpringMVC支持使用注解方式配置,比配置文件方式更加灵活易用,是SpringMVC使用的主流模式. 1.在配置文件中开启SpringMVC的注解 <!-- 开启包扫描 --> < ...

  8. SpringMVC(一)-- springmvc的系统学习之配置方式

    资源:尚学堂  邹波 springmvc框架视频  一.springMVC 工作流程        页面请求---->控制器(Controller DispatcherServlet)----& ...

  9. SpringMVC基于代码的配置方式(零配置,无web.xml)直接继承WebMvcConfigurerAdapter

    基于配置文件的web项目维护起来可能会更方便,但是有时候我们会有一些特殊的需求,比如防止客户胡乱更改配置,这时候我们需要给配置隐藏到代码中. 1.创建一个动态web项目(无需web.xml) 2.右键 ...

随机推荐

  1. composer安装laravel

    安装composer composer是一个很有用的工具,我将用它在本机(win7)上安装laravel 到composer的官网,根据自己的系统要求下载相应的版本 安装laravel 首先cmd下进 ...

  2. [: 11: y: unexpected operator问题

    <私房菜>上的shell脚本问题: 转载:[: 11: y: unexpected operator问题 脚本如下:% #!/bin/bash # Program: # This prog ...

  3. CSS3 banner图片的标签效果

    放body看,你懂的:)

  4. Hibernate学习笔记(3)---hibernate关联关系映射

    一对一关联 假设有两个持久化类(实体类)User与Address,它们之间存在一对一的关系 1,通过主键关联(个人偏向另外一种) User.hbm.xml文件配置 <id name=" ...

  5. CSS选择器:伪类(图文详解)

    本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. 伪类(伪类选择器) 伪类:同一个标签,根据其不同的种状态,有不同的样式. ...

  6. 【读书笔记】【深入理解ES6】#4-扩展对象的功能性

    对象类别 ES6规范清晰定义了每一个类别的对象. 普通(Ordinary)对象 具有JS对象所有的默认内部行为 特异(Exotic)对象 具有某些与默认行为不符的内部行为 标准(Standard)对象 ...

  7. 使用GPA针对android应用的绘制分析

    使用GPA针对android应用的绘制分析 以前经常用GPA来perf端游的绘制,很多perf工具例如perfhud,pix对于加壳的程序总是束手无策,但是GPA却不受这个限制,可以自动HOOK 3D ...

  8. RichErp - export import 用法

    // --file.js-- function getJSON(url, callback) { let xhr = new XMLHttpRequest(); xhr.onload = functi ...

  9. 用vue官方提供的模板vue-cli搭建一个helloWorld案例

    安装环境 安装node.js并配置环境变量 安装淘宝镜像,npm install -g cnpm --registry=https://registry.npm.taobao.org 安装webpac ...

  10. ajax 处理请求回来的数据

    比如接口 /test, 请求方式get, 请求过来的数据要处理在container 里,如下代码 $.get("/test", {}, function(result){ $(&q ...