有角度的,当在URL中提到该变量时,该变量不会被其值替换。例如:$ {username}

时间:2019-05-21 11:42:44

标签: angular spring-boot

我在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。

1 个答案:

答案 0 :(得分:2)

如果应该包裹在``不是单个qoutes上

let url = `http://localhost:8080/user/${username}/${password}/${email}`