Hai perfettamente ragione. Sono stato molto generico Quando effettuo il login, non accade assolutamente nulla. Non viene visualizzato alcun errore. È come se il click del mouse non fosse collegato ad alcun metodo (anche se in realtà lo è). Non ho mostrato il codice perché troppo lungo. Ora provo a farlo. Inizialmente il JDBC non era presente. Poi l'ho scaricato e l'ho copiato nella cartella del progetto
login.component.html
<body>
<div class="container-fluid">
<div class="row">
<div class="col-md-7">
<img src="../../assets/operas_logo.svg" alt="logo">
</div>
<div class="col-md-5">
<form #f="ngForm">
<p>Please insert username and password to Login or Sign Up</p>
<div class="form-group">
<input class="form-control" type="text" id="user" name="username" placeholder="Username" ngModel>
</div>
<div class="form-group">
<input class="form-control" type="password" id="pass" name="password" placeholder="Password" ngModel>
</div>
<button type="submit" (click)="login(f)">Login</button>
<button type="submit">Sign Up</button>
</form>
</div>
</div>
</div>
</body>
login.component.ts
import { Component, OnInit } from '@angular/core';
import { LoginDTO } from 'src/dto/logindto';
import { NgForm } from '@angular/forms';
import { UserService } from 'src/service/user.service';
import { Router } from '@angular/router';
@Component({
selector: 'app-login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.css']
})
export class LoginComponent implements OnInit {
loginDTO: LoginDTO;
constructor(private service: UserService, private router: Router) { }
ngOnInit() {
}
login(f: NgForm): void {
this.loginDTO = new LoginDTO(f.value.username, f.value.password);
this.service.login(this.loginDTO).subscribe((user) => {
if (user != null) {
localStorage.setItem('currentUser', JSON.stringify(user));
switch (user.usertype.toString()) {
case 'ADMIN': {
this.router.navigate(['/admin-dashboard']);
break;
}
case 'USER': {
this.router.navigate(['/user-dashboard']);
break;
}
default:
this.router.navigate(['/login']);
}
}
});
}
}
admin-dashboard.component.html
<div class= "container">
<h1 style="text-align: center">Welcome {{user.username}}</h1>
<p>
Hello World!!!
</p>
</div>
admin-dashboard.component.html
import { Component, OnInit } from '@angular/core';
import { UserDTO } from 'src/dto/userdto';
/**
* Componente della dashboard admin. Nell'ngOnInit recupera
* l'utente loggato per il messaggio di benvenuto.
*/
@Component({
selector: 'app-admin-dashboard',
templateUrl: './admin-dashboard.component.html',
styleUrls: ['./admin-dashboard.component.css']
})
export class AdminDashboardComponent implements OnInit {
user: UserDTO;
constructor() { }
ngOnInit() {
this.user = JSON.parse(localStorage.getItem('currentUser'));
}
}