SpringBoot---@Pathvariable
@Pathvariable主要是通过/来传输参数,本质是从url模板来填充
请求路径:
后台接收方式:
@RequestMapping("/test")
public class DmTestApiController{
@GetMapping("/testPathVariable/{id}")
public void testPathVariable(@PathVariable(value = "id") String id){
System.out.println("通过@PathVariable获取参数"+id);
}
value:用来绑定路径中所传递的值,如果参数名称与路径中所传名称相同则不需要使用value属性,如果不同则需要通过value属性去绑定
@Pathparam
@Pathparam主要是通过?来传参数,本质是从url模板来填充
请求路径:
通过拼接键值来传递参数
后台接收方式:
@RequestMapping("/mspJRApi/test")
public class DmTestApiController extends BaseController
{
@GetMapping("/testPathParam")
public void testPathParam(@PathParam(value = "id") String id){
System.out.println("通过@PathParam获取参数"+id);
}
他的参数不会写在后端的请求路径上,在请求发出时会拼接到请求路径,所以要求value属性的值要和其request中的键相同
@Requestparam
@Requestparam也是通过?来传参数,本质是从url模板来填充
对于@Requestparam注解主要有三个参数:
value:请求中传入参数的名称,如果不设置后台接口的value值,则会默认为该变量名。比如上图中第一个参数如果不设置value=“page”,则前端传入的参数名必须为pageNum,否则在后台接口中pageNum将接收不到对应的数据
required:该参数是否为必传项。默认是true,表示请求中一定要传入对应的参数,否则会报404错误,如果设置为false时,当请求中没有此参数,将会默认为null,而对于基本数据类型的变量,则必须有值,这时会抛出空指针异常。如果允许空值,则接口中变量需要使用包装类来声明。
defaultValue:参数的默认值,如果请求中没有同名的参数时,该变量默认为此值。注意默认值可以使用SpEL表达式,如"#{systemProperties[‘java.vm.version’]}
请求路径:
后台接受方式:
@RestController
@RequestMapping("/mspJRApi/test")
public class DemoTest {
@GetMapping("/testRequestParam")
public void testRequestParam(@RequestParam(value = "id") int id){
System.out.println("通过@RequestParam获取到的参数:"+id);
}
}