在前后台交互时发现有两种方式可用:@PathVariable与@RequestParam。
查询资料了解到:这两个注解是从request中接收请求的,两个都可以接收参数。不同的是`@PahVariable`是从一个URL模板里填充,`@RequestParam`是从request里面拿取值。
目录
一、@PathVariable
这个注解能够识别URL里的一个模板。
1. 路径中使用{}
url: FLOWABLE.CONFIG.contextRoot + '/app/rest/process-instances/' + processInstanceId
@DeleteMapping(value = "/rest/process-instances/{processInstanceId}")
@ResponseStatus(value = HttpStatus.OK)
public void deleteProcessInstance(@PathVariable String processInstanceId) {
processInstanceService.deleteProcessInstance(processInstanceId);
}
2. @PathVariable/@PathVariable("processInstanceId")
二、@RequestParam
1. “...?参数=参数值” 的方式
var url = FLOWABLE.CONFIG.contextRoot + '/app/rest/process-definition?processDefinitionId=';
if (processDefinitionId) {
url += processDefinitionId ;
}
@GetMapping(value = "/rest/process-definition")
public ProcessDefinitionRepresentation getProcessDefinition(@RequestParam(value = "processDefinitionId", required = false) String processDefinitionId) {
return processDefinitionService.getProcessDefinition(processDefinitionId);
}
2. 传两个参数
FLOWABLE.CONFIG.contextRoot + '/app/rest/service-contents/services' + '?id=' + id + '&limitnum=' + limitNum;
@GetMapping(value="/rest/service-contents/services")
public ResultListDataRepresentation getServices(@RequestParam(value = "id", required = false) int id,
@RequestParam(value = "limitnum", required = false) int limitnum) {
return serviceContentsService.getServices(id, limitnum);
}
3. @RequestParam支持下面四种参数
- defaultValue:如果本次请求没有携带这个参数,或者参数为空,就启用默认值
- name:绑定本次参数的名称,要跟URL上面的一样
- value:和name作用一样,是name属性的一个别名
- required:这个参数是不是必须的
参考链接:@RequestParam,@PathParam,@PathVariable等注解区别_一年e度的夏天的专栏-CSDN博客_@pathvariable