文档章节

使用@RequestMapping映射请求路径

JettyWag
 JettyWag
发布于 2016/09/03 20:58
字数 445
阅读 67
收藏 0

    你可以使用@RequestMapping 注解映射url比如/appointments映射到整个类或者某个特定的处理方法
特别是类级别的注解讲一个特定的请求路径映射到一个 form控制器。使用额外的方法级注解将映射缩小到
一个具体的HTTP方法(GET,POST等等)或者一个HTTP请求参数条件。

@Controller
@RequestMapping("/appointments")
public class AppointmentsController {

    private final AppointmentBook appointmentBook;

    @Autowired
    public AppointmentsController(AppointmentBook appointmentBook) {
        this.appointmentBook = appointmentBook;
    }

    @RequestMapping(method = RequestMethod.GET)
    public Map<String, Appointment> get() {
        return appointmentBook.getAppointmentsForToday();
    }

    @RequestMapping(path = "/{day}", method = RequestMethod.GET)
    public Map<String, Appointment> getForDay(@PathVariable @DateTimeFormat(iso=ISO.DATE) Date day, Model model) {
        return appointmentBook.getAppointmentsForDay(day);
    }

    @RequestMapping(path = "/new", method = RequestMethod.GET)
    public AppointmentForm getNewForm() {
        return new AppointmentForm();
    }

    @RequestMapping(method = RequestMethod.POST)
    public String add(@Valid AppointmentForm appointment, BindingResult result) {
        if (result.hasErrors()) {
            return "appointments/new";
        }
        appointmentBook.addAppointment(appointment);
        return "redirect:/appointments";
    }
}

    上面的例子中@RequestMapping被用在很多地方,第一个用法是类级别的,这表明这个控制器的所有处理方法都和 /appointments路径相关联。 get()方法对@RequestMapping进一步细化,它仅仅接收GET请求意味着/appointments 路径下的GET请求使用这个方法。add()方法也是相同的细化,getNewForm()方法将HTTP方法和路径结合,因此appointments/new路径下的GET请求使用这个方法。
  getForDay()显示的是@RequestMapping另一种用法,后面会讲解。
    类级别的 @RequestMapping并不是必须的。如果不使用类级别的@RequestMapping,路径是绝对路径,而不是相对路径。下面的例子展示了一个使用@RequestMapping的multi-action 控制器。

@Controller
public class ClinicController {

    private final Clinic clinic;

    @Autowired
    public ClinicController(Clinic clinic) {
        this.clinic = clinic;
    }

    @RequestMapping("/")
    public void welcomeHandler() {
    }

    @RequestMapping("/vets")
    public ModelMap vetsHandler() {
        return new ModelMap(this.clinic.getVets());
    }

}

     上面的例子并没有指定GET, PUT, POST等等,因为 @RequestMapping默认匹配所有的HTTP方法。使用@RequestMapping(method=GET)
只是进一步细化。

© 著作权归作者所有

共有 人打赏支持
JettyWag

JettyWag

粉丝 1
博文 47
码字总数 35855
作品 0
杭州
后端工程师
私信 提问
关于Java中的注解

·@SuppressWarings的意思 J2SE 提供的最后一个批注是 @SuppressWarnings。该批注的作用是给编译器一条指令,告诉它对被批注的代码元素内部的某些警告保持静默。 ·使用 @Controller 定义一个...

wf王帆
2016/05/07
84
0
(转)Spring MVC的常用注解

@Controller(常用) 注解一个类表示控制器,Spring MVC会自动扫描标注了这个注解的类。 @RequestMapping(常用) 请求路径映射,可以标注类,也可以是方法,可以指定请求类型,默认不指定为...

政旭Arvin
01/18
0
0
SpringMVC----RequestMapping映射请求

1.SpringMVC使用@RequestMapping注解为控制指定可以处理哪些URL请求。 2.在控制器的类定义及方法定义处都可标注。 @RequestMapping --类定义处:提供初步的请求映射信息。相对于WEB应用的根目...

Rickxue
2015/12/13
106
0
超详细 Spring @RequestMapping 注解使用技巧

@RequestMapping 是 Spring Web 应用程序中最常被用到的注解之一。这个注解会将 HTTP 请求映射到 MVC 和 REST 控制器的处理方法上。 在这篇文章中,你将会看到 @RequestMapping 注解在被用来...

oschina
2017/09/13
7.9K
9
3:spring mvc 控制器

Controller 简介 Controller 控制器,是MVC 中的部分C,主要负责功能处理部分:1、收集、验证请求参数并绑定到命令对象;2、将命令对象交给业务对象,由业务对象处理并返回模型数据;3、返回...

小杰java
2017/10/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

类加载机制过程

1.加载。 将代码转换成字节流加载进内存。加载完之后创建一个Class对象,这个对象是访问数据的入口。 2.验证。 JVM规范验证和代码逻辑验证。 3.准备 内存分配和初始化。对static修饰的类变量...

无精疯
26分钟前
1
0
next.js 提示 chunk styles [mini-css-extract-plugin]

会出现css 导入警告 导入两个插件 并在next.config.js 配置 yarn add webpack-filter-warnings-pluginyarn add mini-css-extract-plugin const FilterWarningsPlugin = require('webpack-......

一箭落旄头
33分钟前
1
0
AWS的自动部署codeploy 应用程序规范文件

codedeploy应用程序的规范文件 ECS平台上的应用规范文件: AppSpec file也可以是 YAML 或 JSON 格式的,可以直接写入控制台内的编辑器内。 AppSpec file用于指定: 用于将流量定向到新任务集...

守护-创造
41分钟前
1
0
Confluence 6 超过当前许可证期限进行升级

这个页面将会对你在进行 Confluence 升级的时候超过了当前许可证的期限进行升级的情况。 许可证警告 在升级的过程中,你将会在 Confluence 的应用程序日志(log file)中看到类似下面的错误提...

honeymoose
47分钟前
2
0
JS 调用Angularjs 的方法

// 1. 获取 Controllerlet appElement = document.querySelector('[data-ng-controller=MessagesCtrl]');let scope = angular.element(appElement).scope();// 2. 调用方法scope.l......

Moks角木
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部