标签:ble point 相同 erro nal binding test tap 声明
Spring MVC中控制器用于解析用户请求并且转换为模型,提供访问应用程序的行为,通常用注解方式实现.
org.springframework.stereotype.Controller注解类型用于声明Spring类的实例为一个控制器, Spring可以扫描找到应用程序中所有基于注解的控制器类,所以需要在配置文件中声明扫描路径:
<!-- 自动扫描包,实现支持注解的IOC --> <context:component-scan base-package="cn.luan.controller" />
一个简单的控制器:
@Controller public class BarController { //映射访问路径 @RequestMapping("/index") public String index(Model model){ //Spring MVC会自动实例化一个Model对象用于向视图中传值 model.addAttribute("message", "这是通过注解定义的一个控制器中的Action"); //返回视图位置 return "foo/index"; } }
@RequestMapping注解用于映射url到控制器类或一个方法。可用于类和方法上。该注解共有8个属性:
public @interface RequestMapping { java.lang.String name() default ""; @org.springframework.core.annotation.AliasFor("path") java.lang.String[] value() default {}; @org.springframework.core.annotation.AliasFor("value") java.lang.String[] path() default {}; org.springframework.web.bind.annotation.RequestMethod[] method() default {}; java.lang.String[] params() default {}; java.lang.String[] headers() default {}; java.lang.String[] consumes() default {}; java.lang.String[] produces() default {}; }
value和path属性功能相同, 用来指定映射路径或URL模板,数组,允许@RequestMapping(value=http://www.mamicode.com/{"/rm1","/rm2"})。
name属性指定映射器名称,一般情况下不指定
method属性指定请求方式,可以为GET, POST, HEAD, OPTIONS, PUT, PATCH, DELETE, TRACE,用来过滤请求范围,不符合的请求将返回405:Method Not Allowed
params属性指定映射参数规则
consumes属性指定请求的内容类型,如application/json, text/html
produces属性指定返回的内容类型,如application/json; charset=UTF-8
headers属性指定映射请求头部,如Host,Content-Type等
一个例子:
@Controller @RequestMapping("/appointments") public class AppointmentsController { private final AppointmentBook appointmentBook; @Autowired public AppointmentsController(AppointmentBook appointmentBook) {Spring MVC控制器
扫一扫手机访问
