Spring mvc中@RequestMapping 6个基本用法小结
Spring mvc中@RequestMapping 6个基本用法小结
小结下spring mvc中的@RequestMapping的用法。
1)最基本的,方法级别上应用,例如:
- @RequestMapping(value="/departments")
- public String simplePattern(){
- System.out.println("simplePattern method was called");
- return "someResult";
- }
则访问http://localhost/xxxx/departments的时候,会调用 simplePattern方法了
2) 参数绑定
- @RequestMapping(value="/departments")
- public String findDepatment(
- @RequestParam("departmentId") String departmentId){
- System.out.println("Find department with ID: " + departmentId);
- return "someResult";
- }
形如这样的访问形式:
/departments?departmentId=23就可以触发访问findDepatment方法了
3 REST风格的参数
- @RequestMapping(value="/departments/{departmentId}")
- public String findDepatment(@PathVariable String departmentId){
- System.out.println("Find department with ID: " + departmentId);
- return "someResult";
- }
形如REST风格的地址访问,比如:
/departments/23,其中用(@PathVariable接收rest风格的参数
4 REST风格的参数绑定形式之2
先看例子,这个有点象之前的:
- @RequestMapping(value="/departments/{departmentId}")
- public String findDepatmentAlternative(
- @PathVariable("departmentId") String someDepartmentId){
- System.out.println("Find department with ID: " + someDepartmentId);
- return "someResult";
- }
这个有点不同,就是接收形如/departments/23的URL访问,把23作为传入的departmetnId,,但是在实际的方法findDepatmentAlternative中,使用
@PathVariable("departmentId") String someDepartmentId,将其绑定为
someDepartmentId,所以这里someDepartmentId为23
5 url中同时绑定多个id
- @RequestMapping(value="/departments/{departmentId}/employees/{employeeId}")
- public String findEmployee(
- @PathVariable String departmentId,
- @PathVariable String employeeId){
- System.out.println("Find employee with ID: " + employeeId +
- " from department: " + departmentId);
- return "someResult";
- }
这个其实也比较好理解了。
6 支持正则表达式
- @RequestMapping(value="/{textualPart:[a-z-]+}.{numericPart:[\\d]+}")
- public String regularExpression(
- @PathVariable String textualPart,
- @PathVariable String numericPart){
- System.out.println("Textual part: " + textualPart +
- ", numeric part: " + numericPart);
- return "someResult";
- }
比如如下的URL:/sometext.123,则输出:
Textual part: sometext, numeric part: 123.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述