我正在尝试将数据从Angular项目中HTML模板中的表单发送到Spring Boot REST Controller方法,该方法接受@RequestParam
参数作为函数参数。看起来像这样:
@PostMapping("/login")
public String loginGateway(@RequestParam("uname") String username, @RequestParam("passwd") String password)
{
// some processing here
}
请注意,我需要在此处使用@RequestParam
。我发现很多关于@RequestBody
的教程,但几乎没有提到前者。
我在Angular HTML模板中的表单如下所示:
<h2 style="text-align: center;">Login to your Account</h2>
<br/>
<div style="width: 40%;" class="container center_div">
<form #employerForm="ngForm" class="was-validated" (ngSubmit)="onSubmit()">
<div class="form-group">
<label>Email : </label>
<input #un="ngModel" name="username" type="email" class="form-control" [(ngModel)]="login.username" required placeholder="Enter your email">
<div *ngIf="un.errors && (un.invalid || un.dirty)">
<small *ngIf="un.errors.required" class="text-danger">Username is required</small>
</div>
</div>
<div class="form-group">
<label>Password : </label>
<input #pw="ngModel" name="password" type="password" class="form-control" [(ngModel)]="login.password" required placeholder="Enter your password">
<!-- <div class="valid-feedback">valid</div> -->
<div *ngIf="pw.errors && (pw.invalid || pw.dirty)">
<small *ngIf="pw.errors.required" class="text-danger">Password is required </small>
</div>
</div>
<br/>
<div style="text-align: center;">
<a href="#" class="btn btn-primary d-block">Sign In</a>
</div>
</form>
</div>
Angular中的Login类看起来像这样:
export class Login {
userId: number;
username: string;
password: string;
roleType: string;
}
总而言之,如何将用户以HTML模板形式输入的数据发送到使用@RequestParam
参数的Spring Boot控制器方法中?
您的Java服务中有错误。如果要接收@RequestParam,则必须使用@GetMapping注释服务。之后,您只需对端点进行GET调用
/login?uname=something&passwd?something
如果您已经知道如何用角度进行POST呼叫,这对您来说应该很容易