如何使用@RequestParam将表单数据作为参数从Angular服务发送到Spring Boot REST控制器方法?

问题描述 投票:0回答:1

我正在尝试将数据从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控制器方法中?

angular spring spring-boot angular7
1个回答
0
投票

您的Java服务中有错误。如果要接收@RequestParam,则必须使用@GetMapping注释服务。之后,您只需对端点进行GET调用

/login?uname=something&passwd?something 

如果您已经知道如何用角度进行POST呼叫,这对您来说应该很容易

© www.soinside.com 2019 - 2024. All rights reserved.