同个接口既使用@PathVariable接收url中的参数,又使用@RequestBody接收前端的对象

后端的最外层接口:使用的是POST请求方式javascript

@ApiOperation("添加学生管理_学生信息_学生课程等级")
    @RequestMapping(value = "/create/{studentCourseGradeMergeId}", method = RequestMethod.POST)
    Result<?> create(@ApiParam(value = "学生等级类别合并ID") java.lang.String studentCourseGradeMergeId,
    		@ApiParam(value = "学生ID") java.lang.String[] studentIds);

 controller层使用的是:前端

@Override
	public Result<?> create(@PathVariable("studentCourseGradeMergeId") String studentCourseGradeMergeId,
			@RequestBody java.lang.String[] studentIds) {
		SystemUserInfo systemUserInfo = SessionUtil.getSystemUserInfo(request); // 获取用户信息
		String userId = "";
		if (systemUserInfo != null) {
			userId = systemUserInfo.getUserId(); // 用户Id
		}
		studentGradeService.batchCreate(userId, studentCourseGradeMergeId, studentIds);
		return Result.buildSuccessResult();
	}

  前端传递的是:其中formData.courseGradeCategoryCode是url路径中的一部分,studentIds是传递的数组也就是对象java

// 批量添加学生等级
    batchOnSubmit = () => {
        this.refs.addModal.validateFields((err, formData) => {
            if (!err) {
                let studentIds = this.child.state.selectedRowKeys; // 获取到选中记录的学生ID
                studentGradeCreate(formData.courseGradeCategoryCode,studentIds, () => {
                  this.onSearch();
                    this.showAddModal();
                    this.setState({
                        selectedRowKeys: []
                    })
                });
            }
        });
    };

  前端抽取出来的service层是:后端

// 添加学生管理_学生信息_学生课程等级管理
export function studentGradeCreate(param,data, callback) {
    post(studentGradeApi.create + '/'+ param, data).then(response => {
        if (response.code == '200') {
            message.info('添加成功');
            callback();
        } else {
            if (response.message) {
                message.error(response.message);
            } else {
                message.error('添加失败');
            }
        }
    });
}
相关文章
相关标签/搜索