spring MVC启用注解的方式非常简单,在dispatcher-servlet.xml中加入如下配置:
<context:component-scan base-package="com.controller"/>
<mvc:annotation-driven/>
这两行配置的含义是:第一行配置注解要扫描的包,可以有多个
第二行表示开启springMVC的注解扫描功能
当前springMVC的版本是3.1
下面先在上面配置的包下面新建一个控制类:
package com.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
/**
*
* @author seacean
*/
@Controller
@RequestMapping("/hello.do")
public class Hello {
@RequestMapping(value="/hello.do?action=default")
public ModelAndView dohello(){
return new ModelAndView("/hello","hello","hello");
}
}
下面是对这段代码的分析:
@Controller :声明这个文件的类型是控制器类型,它是一个类型声明,是MVC结构当中的C
@RequestMapping("/hello.do") :声明这个类所对应的url,当然这个声明是一种相对路径的方式,对于里面的参数,value代表的是url,params表示一个控制器下多个方法的调用标示,method表示请求的类型,可以使用RequestMethod下面的请求类型给method赋值
新建一个hello.jsp页面,在body中加入
<h1>${hello}</h1>
然后部署springMVC,启动查看效果
下面的代码示例是一种简化版的控制器编程方式:
@Controller
@RequestMapping("/hello")
public class Hello {
@RequestMapping("/default.do")
public String dohello(HttpServletRequest request){
request.setAttribute("hello", "hello");
return "/hello";
}
}
这种方式显得非常的简单,需要什么就加入什么,简化了ModelAndView,更类似与Servlet的使用方式。生成的路径为类的RequestMapping+方法的RequestMapping.向页面传递参数的时候,可以使用正常的request对象传递。