java接收请求controller层的各种写法

本文引用https://blog.csdn.net/qq_31580425/article/details/124941626

get请求

这种情况使用实体类接收参数,不需要使用@RequestBody。然而当请求为发送的json串时,则需要使用注解。
下面两种方式都可以

http://localhost:8080/method03/id=“10”&name=“张三”&age=“18”
 @RequestMapping("/getUser01")
    public String method01(Integer id, String name, Integer age) {
        User user = new User();
        user.setMoney(id);
        user.setName(name);
        user.setAge(agg);// 获取不到agg的值,因为传递的是age,参数名称一定要一致
        return JSON.toJSONString(user);
    }



// @RequestParam(value = "money", required = false) 中required 为true时接收请求时会根据value去url寻找同名参数,如果没找到会报错;
@RequestMapping(value = "/getUser02")
    public String method02(@RequestParam(value = "id", required = false) Integer id,
    		               @RequestParam("name") String name,
                           @RequestParam("age") Integer age
                           ) {
        User user = new User();
        user.setMoney(id);
        user.setName(name);
        user.setAge(age);
        return JSON.toJSONString(user);
    }


// 两种方式都可以

// 直接通过实体接收参数
// 参数名与实体中的属性名一致即可自动映射到实体属性中
 @RequestMapping("/getUser01")
    public String method02(User user) {
        // 参数名称要和字段对应
        return JSON.toJSONString(user);
    }

//@ModelAttribute 注解主要作用是自动将数据暴露为模型数据用于视图页面展示时使用,比如此处注解value为user, 前端视图就可以通过${user.name}来获取绑定的命令对象的属性
@RequestMapping("/getUser02")
    public String method05(@ModelAttribute("user") User user) {
        return JSON.toJSONString(user);
    }

post请求
http://localhost:8080/method03

发送的数据为json串
下面两种方式都可以

@RequestMapping(value = "/method01")
    public String method03(@RequestBody User user) {
        return JSON.toJSONString(user);
    }

import com.fasterxml.jackson.databind.ObjectMapper;

@Autowired
    private ObjectMapper objectMapper;

@PostMapping("/list/page")
	public String listByPage(@RequestParam Map<String, Object> map) {
			User	u = objectMapper.readValue(map, User.class);
			return JSON.toJSONString(u);
	}
delete请求
数组时

加上JSON.stringfify时报400错误

 		    let arrayId = [1,2,3]
            _axios({
                method: 'delete',
                url: '/dept/delete',
                data: arrayId
            }).then(result=>{
                //this.findList()
            })

后端为:

@DeleteMapping("/delete")
	public R<Boolean> delete(@RequestBody List<Integer> value) {

//或者
@DeleteMapping("/delete")
	public R<Boolean> delete(@RequestBody String[] value) {

都行
当没有@RequesBody时接收不到参数
在这里插入图片描述

restful风格
_axios({
                method: 'delete',
                url: '/dept/delete/'+row.id
            }).then(result=>{
                //this.findList()
            })
@DeleteMapping("/delete/{id}")
	public R<Boolean> delete(@PathVariable("id") Integer deptId) {
RestFul 风格

这只是一种传参格式,适用与get,post,delete,put都可使用

@RequestMapping(value = {"/method07/{id}/{name}/{age}","/method07/{id}/{name}"})
    public String method07(@PathVariable("id", required = true) Integer id
    					   @PathVariable("name") String name,
                           @PathVariable(value = "age") Integer age,
                           ) {
        User user = new User();
        user.setMoney(id);
        user.setName(name);
        user.setAge(age);
        return JSON.toJSONString(user);
    }

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值