前端向后台传值的方式及相关注解


为前端提供接口,需要对传参方式有所熟悉,以下有几种常用的传参方式和常见的相关注解,请指正。

传参方式

后台对应的实体类应包含属性:
@Data
public class User{
  private String id;
  private String name;
}

QueryString传参

请求的url样例:http://localhost:8080/test?id=1&name=zhangsan
接收方式:

@RequestMapper("/test")
public void test(String id,String name){
	......
}

@RequestMapper("/test")
public void test(User user){
	......
}

访问路径传参

请求的url样例:http://localhost:8080/test/1/zhangsan
接收方式:

@RequestMapper("/test/{id}/{name}")
public void test(@PathVariable("id")String id,@PathVariable("name")String name){
	......
}

form表单传参

请求form表单样例(提交字符串):

<form action="http://localhost:8080/test">
	id:<input type="text" name="id" /><br>
	name:<input type="text" name="name" /><br>
	<input type="submit" value="提交按钮">
</form>

接收方式:

@RequestMapper("/test")
public void test(String id,String name){
	......
}

@RequestMapper("/test")
public void test(User user){
	......
}

请求form表单样例(提交文件):

一般是post请求,因为get请求方式大小有限制,文件大小不确定且必须写enctype = "multipart/form-data"
<form action="http://localhost:8080/test" method= "post" enctype = "multipart/form-data">

	文件:<input type="file" name="photo" /><br>
	
	<input type="submit" value="提交按钮">

</form>

接收方式:

@RequestMapper("/test",method = RequestMethod.POST)
public void test(MultipartFile file){
 ......
}

ajax方式进行JSON传参

请求样例:

$.ajax({
        // 请求方式
        type:"post",
        // contentType 
        contentType:"application/json",
        // dataType
        dataType:"json",
        // url
        url:"http://localhost:8080/test",
        // 把JS的对象或数组序列化一个json 字符串
        data:{'id':1,'name':'张三'},
        // result 为请求的返回结果对象
        success:function (result) {
            if (200 == result.code){
                alert("成功");
            }else{
                alert("失败");
            }
        }
    });

接收方式:

@RequestMapping("/test",method = RequestMethod.POST)
public void test(@RequestBody User user){
 ......
}

常用注解

@RequestBody

主要用来接收前端传递给后端的json字符串中的数据,一般都用POST方式进行提交。一个请求@RequestBody最多只能有一个,如果参数放在请求体中,application/json传入后台的话,那么后台要用@RequestBody才能接收到。
示例:

@RequestMapper("/test")
public void test(@RequestBody String jsonString){
	......
}

//如果前端传来的不是实体类数据,则会自动封装
@RequestMapper("/test")
public void test(@RequestBody User user){
	......
}

@RequestParam

springmvc中接收普通参数的注解,一个请求,可以有多个RequestParam。
请求url样例:localhost:8080/test/?id=1&name=zhangsan
使用方式:

@RequestMapper("/test")
public void test(@RequestParam("id") String id,@RequestParam String name){
	......
}
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

残夜.寒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值