生意网官方网站,代运营怎么找客户,高清视频线转换线,免费的空间网站获取QueryString格式参数#xff08;RequestParam#xff09; QueryString#xff08;查询字符串#xff09;是指URL中?符号后面的参数部分。它通常用于在HTTP请求中传递参数给服务器。
比如#xff1a;http://localhost:8080/test?qapplecategoryfruit 其中… 获取QueryString格式参数RequestParam QueryString查询字符串是指URL中?符号后面的参数部分。它通常用于在HTTP请求中传递参数给服务器。
比如http://localhost:8080/test?qapplecategoryfruit 其中?之后的部分就是查询字符串包括qapple和categoryfruits两个参数。 我们可以使用RequestParam来获取QueryString格式的参数。 1.参数单独的获取 RequestParam把QueryString格式参数的参数绑定在方法的参数上则想获取的参数单独的获取即把参数放在方法上即可。 在方法中定义方法参数方法参数名要和请求参数名一致这种情况下可以省略RequestParam注解。
GetMapping(/test)public String testRquestParam(Integer id, String name, String[] likes){System.out.println(id);System.out.println(name);System.out.println(Arrays.toString(likes));return success;}
如果方法参数名和请求参数名不一致我们可以加上RequestParam注解例如 GetMapping(/test)public String testRquestParam(RequestParam(id) Integer uid,RequestParam(name) String name, RequestParam(likes)String[] likes){System.out.println(uid);System.out.println(name);System.out.println(Arrays.toString(likes));return success;} 2.获取参数封装成实体对象 如果我们想把这些参数封装到一个User对象中可以使用如下写法 GetMapping(/test)public String testRquestParam(User user){System.out.println(user);return success;}
User类定义如下
Data
NoArgsConstructor
AllArgsConstructor
public class User {private Integer id;private String name;private String[] likes;
}
测试时请求url如下
http://localhost:8080/test?id1namezlikes唱likes跳
注意实体类中的成员变量要和请求参数名对应上。并且要提供对应的set/get方法。 2.1 相关注解其他属性 2.1.1 required 代表是否必须默认值为true也就是必须要有对应的参数。如果没有就会报错。 如果对应的参数可传可不传则可以把其设置为fasle
例如 GetMapping(/test)public String test(RequestParam(value id,required false) Integer uid,RequestParam(name) String name, RequestParam(likes)String[] likes){System.out.println(uid);System.out.println(name);System.out.println(Arrays.toString(likes));return success;} 4.3.4.2 defaultValue
假如没有传对应的参数可以用defaultValue属性设置默认值。
例如 GetMapping(/test)public String test(RequestParam(value id,required false,defaultValue 666) Integer uid,RequestParam(name) String name, RequestParam(likes)String[] likes){System.out.println(uid);System.out.println(name);System.out.println(Arrays.toString(likes));return success;} RequestBody与RequestParam()可以同时使用。 一个请求只有一个RequestBody但是可以有多个RequestParam。 可以使用RequestBody获取请求体中的json数据然后使用RequestParam获取url中的参数
PostMapping(/test)
public String example(RequestParam(id) Long id, RequestBody User user) {// 处理逻辑return id user.toString();
}
用RequestParam接收的参数
url: localhost:8080/example?id123
用RequestBody接收前端传的的json参数
Content-Type: application/json
{name: z,age: 3
} 注意:参数加了RequestParam()的话那么前端必须传对应参数值(不过可以设置required属性来调节是否必须传)否者会报错如果参数前没有加RequestParam()注解那么前端可以传也可以不传。 ——————————————————————————————————————————
其他Controller类常用的注解可以这个文章的汇总Web开发Controller类详解-CSDN博客