vue post参数到springboot后台
平时,post一些数据到springboot后台,都是习惯用在后台用一个对象来接参数,如:
前端:
login(ruleForm) {
var that = this;
that.$http
.post(
"/api/bookseller/m/account/login",
JSON.stringify({
account: ruleForm.userName,
pwd: ruleForm.userPwd,
}),
{headers: {
'Content-Type': 'application/json'
}}
)
.then(function (res) {
var loginInfo=res.data.data;
console.log(loginInfo)
that.$store.commit("Login",loginInfo);
that.$router.push("/Index");
})
.catch(function (error) {
console.log(error);
});
}
后端:
@PostMapping("/login")
public UserWithRoleModel login(@RequestBody @Validated LoginReqParams loginParams) {
return mAccountService.login(loginParams);
}
LoginReqParams 对象定义如下:
@Data public class LoginReqParams { @ApiModelProperty(value = "用户名/手机号码", required = true) @NotBlank(message = "用户名/手机号码不能为空") private String account; @ApiModelProperty(value = "密码", required = true) @NotBlank(message = "密码不能为空") private String pwd; }
但是,有时候,只是post一个字符串,如果定义一个对象,又觉得很浪费后台代码,在此记录一下如何psot一个参数给后台:
前端如下:
resetPwd() { var that = this; var resetIds = ""; for (var i = 0; i < that.multipleSelection.length; i++) { if (i > 0) { resetIds += ","; } resetIds += that.multipleSelection[i].id; } that.$http .post( "/api/bookseller/booksellerInfo/resetPwd", that.$qs.stringify({ids: resetIds }), ) .then(function(res) { that.$message({ type: "success", message: "重置成功!" }); console.log(res); });
}
重点代码如下:
that.$qs.stringify({ids: resetIds })
后台代码如下:
@RequestMapping(value = "resetPwd",method = RequestMethod.POST) public boolean resetPwd(@ApiParam("要更新的Id列表") @RequestParam("ids") String ids){ boolean b = bookSellerService.resetPwd(ids); if(!b){ throw new BooksellerException(ResultCodes.COMMON_SYSTEM_ERROR); } return b; }

浙公网安备 33010602011771号