我在springboot中使用@pathvariable从客户端接收数据。变量是用户名,密码和电子邮件。
我检查了变量的值是否传递给服务。是的,它是在我在控制台日志中打印时通过的。
在url中将变量分配为/ $ {username)/ $ {password)// $ {email)时,不是获取这些变量的值,而是将$ {username)存储在数据库中,而不是在用户界面中输入的用户名。
经Postman验证,URL中指定的值用于在数据库中创建记录,工作正常。
附加了Rest Controller代码和服务代码:
Rest Controller
_________________
@RestController
public class UserResource {
@Autowired
private UserService userService;
@RequestMapping(value = "/user/{username}/{password}/{email}",
method = RequestMethod.POST)
public ResponseEntity newUserPost(@PathVariable("username") String username,
@PathVariable("password") String password,
@PathVariable("email") String email,
HttpServletResponse response)
throws Exception {
registerUser function in Service
________________________________
registerUser(username: string, password: string, email: string) {
let params = 'username='+username+'&password='+password;
console.log(params);
let url = 'http://localhost:8080/user/${username}/${password}/${email}'
let headers = new HttpHeaders({
'Content-Type' : 'application/x-www-form-urlencoded',
});
return this.http.post(url, {headers: headers, responseType : 'text'});
}
变量的值需要发送到Spring Boot。
答案 0 :(得分:2)
如果应该包裹在``不是单个qoutes上
let url = `http://localhost:8080/user/${username}/${password}/${email}`