SpringMVC 常用注解
URL 路由映射 @RequestMapping 该注解用以注册接口的路由映射
路由映射:当用户访问一个 url 后,将请求对应到某个类的某个方法的过程
用法:该注解可以加在类上也可以加载方法上
这样通过访问 http://localhost:8080/hi 在页面上看到一个 hello world
@Controller 是 spring 框架启动时会加载 注册到 Bean 中
@ResponseBody 用来将 JAVA 对象转换为 json 格式的数据,写入 response 对象的 body 中。也相当于告诉程序我返回的不是一个页面
如果不加 @ResponseBody 会发现访问报错,因为他以为你返回了一个页面,结果并没有。
为了简便写法,可以用 @RestController 注解
@RestController 的作用就相当于 @Controller + @ResponseBody
@RequestMapping 默认为 get 方法
还可以使用简便的注解:
@PostMapping
@GetMapping
Put、Delete 等都有对应的注解,为方法名加个 Mapping
传递单个参数
在 servlet 中,用过一个方法获取参数
在 springboot 里依然可以用,但是我们有更简便的方法来获取参数——直接在方法中定义参数,springboot 会自动根据参数名找到对应的值,形参名和 key 值必须相同例如:
用 http://localhost:8080/hi?name=rich 访问 springboot 就会自动找到 key 为 name 的值,赋值给方法 sayHi 的形参 name
传递对象
同样也可以传递对象一个 Person 对象
然后使用
http://localhost:8080/hi?name=rich&&password=123
访问,就可以实现对象 p 的传递,springboot 依然会根据 key 值给 Person 类的属性赋值,然后传递给 method_2 方法的形参 p
后端参数重命名
当想要对前端传过来的参数重命名时,可以使用该注解:
@RequestParam
具体用法:
@RequestParam()中写前端的 key,然后再在后面定义形参重新命名为 createtime。但如果前端没有传过来 key 为 time 的值时,页面就会报 400 的错误。但在实际应用中,有些时候的参数非必填项,为了避免报 400 的错误,可以将 @RequestParam 的设置改一下
将 required 改为 false,非必要
上传文件
@RequestPart 使用方法:
@RequestPart 参数写前端传过来的文件的 key,传给 MultipartFile 类的 file 对象。
版权声明: 本文为 InfoQ 作者【@下一站】的原创文章。
原文链接:【http://xie.infoq.cn/article/25045993a6714392a720883e0】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论