当前位置: 首页 > news >正文

SpringMVC中的注解

SpringMVC中的注解

文章目录

  • SpringMVC中的注解
    • @RequestMapping注解
      • @RequestMapping中的value属性
      • @RequestMapping中的method属性
      • 派生类
    • @PathVariable注解
    • @RequestParam注解

@RequestMapping注解

@RequestMapping中的value属性

@RequestMapping:既可以标识在方法上也可以标识在类上

  • 将@RequestMapping注解标识在方法上表示设置请求映射的具体信息(/:会被解析成http://localhost:8080/上下文/)
@RequestMapping(value = "/hello")
public void hello(){System.out.println("hello,SpringMVC");
}
  • 将@RequestMapping注解标识在方法上表示设置请求映射的初始信息
  • 如果@RequestMapping注解标识在方法上请求地址会匹配类中的注解再加上某个方法的注解
@Controller
@RequestMapping(value = "/text")
public class HelloController {@RequestMapping(value = "/hello")public void hello(){System.out.println("hello,SpringMVC");}}

value属性:它是一个String类型的数组,即当前浏览器所发送请求的请求路径匹配value属性中的任何一个值,则当前请求就会被注解所标识的方法进行处理

@RequestMapping中的method属性

method属性是RequestMethod类型的数组,当前浏览器所发送请求的请求方式匹配method属性中的任何一中请求方式,则当前请求就会被注解所标识的方法进行处理

@RequestMapping(value = {"/hello","/abc"},method= {RequestMethod.GET,RequestMethod.POST}
)
public void hello(){System.out.println("hello");
}

派生类

  • 在@RequestMapping注解的基础上,结合请求方式的一些派生类

@GetMapping、@PostMapping、@DeleteMapping、@PutMapping

@GetMapping:表示当前发送的请求方式为get请求,value属性为请求地址

后面三个注解也是如此,表示当前发送的请求方式,value属性为请求地址

@PathVariable注解

在传统发送带参数的请求方式:/helloUser?id=1

在rest风格中将参数作为请求路径发送:/helloUser/1

需要在@RequestMapping注解value属性中所设置的路径中,使用{xxx}的方式表示路径中的数据

在通过@PathVariable注解,将占位符所标识的值和控制器方法的形参进行绑定

  • 发送发请求
<a th:href="@{/rest/helloUser/username/1}">测试</a>
  • 接收请求
@RequestMapping("/rest/helloUser/{username}/{id}")
public void testRest(@PathVariable("id") Integer id , @PathVariable("username") String username){System.out.println(id);//1System.out.println(username);//username
}

@RequestParam注解

@RequestParam注解:将请求参数和控制器方法的形参绑定

  • @RequestParam注解的三个属性,value、required、defaultValue

value:设置和形参绑定的请求参数名字

required:设置是否必须传输value所对应的请求参数,默认值为true,表示value所对应的请求参数必须传输,否则页面报错

若设置为false,则表示value所对应的请求参数不是必须传输,若没传输,则形参值为null

defaultValue:设置当没有传输value所对应的请求参数时,为形参设置的默认值

  • 发送请求
<form th:action="@{/param}" method="post"><input type="text" name="name"/><input type="password" name="password"/><input type="submit" value="登录"/>
</form>
  • 接收请求
@RequestMapping("/param")public void testgetParamTwo(@RequestParam(value = "name",required = false,defaultValue = "hello") String username,String password
) {System.out.println("username = " + username);System.out.println("password = " + password);}
http://www.lryc.cn/news/18460.html

相关文章:

  • python+Vue学生作业系统 django课程在线学习网站系统
  • CSS 美化网页元素【快速掌握知识点】
  • Tableau连接openGauss实践
  • RabbitMQ 实现延迟队列
  • Spring Bean 生命周期,好像人的一生
  • C++算法基础课 05 —— 数据结构1_单链表/双链表/栈/单调栈/队列/单调队列/KMP
  • 小型水库大坝安全监测的主要对象
  • 常见软件开源(alpha,beta等)版本介绍
  • 凌恩生物资讯|抗性宏基因组又一力作|抗性基因+可移动元件研究新成果!
  • 常见前端基础面试题(HTML,CSS,JS)(二)
  • 按关键词搜索,商品详情采集,API接口
  • C++的纯虚函数使用与接口实现
  • Exception has occurred: ModuleNotFoundErrorNo module named ‘urllib3‘【已解决】
  • CSS 盒子模型【快速掌握知识点】
  • 公网远程连接Oracle数据库【内网穿透】
  • 国内售价仅10元的鸭子滑梯玩具TK卖到20美元,相关视频获400万+播放!
  • 直播平台的视频美颜sdk是什么?
  • 实现Vue组件库
  • 面试 | 移位妙解递归乘法【细节决定成败】
  • 项目缓存问题处理
  • DS期末复习卷(八)
  • 第50讲:SQL优化之LIMIT分页查询的优化
  • 做独立开发者,能在AppStore赚到多少钱?
  • CSS 基础【快速掌握知识点】
  • Linux 驱动基础
  • linux 共享内存操作(shm_open、mmap、编译链接库:-lz -lrt -lm -lc都是什么库)
  • 做出改变:农业科技和区块链在为地球的未来而战中的力量
  • 树莓派介绍
  • [神经网络]基干网络之VGG、ShuffleNet
  • Java 日期时间与正则表达式,超详细整理,适合新手入门