Je suis entrain de suivre le parcours Java du site et pour un projet, j'ai besoin de faire des redirections
Je fait le projet en REST API avec des Controller donc, et non des Servlets.
Je suis à l'étape du formulaire, je réussit à traiter mes données, mais si elles sont bonnes ou mauvaises, je ne vois pas avec quel principe rediriger l'utilisateur vers la page correspondante.
Le controller qui affiche mes jsp
@Controller
public class DemoController {
@GetMapping("/login")
public String getLogin() {
return "login";
}
@GetMapping("/home")
public String getHome() {
return "home";
}
}
Le controller qui reçoit les données du formulaire
@RestController
public class AccesController {
@Autowired
AccesServiceInt accesService;
@PostMapping("/loginFormControl")
public String addPerson(HttpServletRequest request){
return accesService.login(request);
}
}
Et enfin mon service, pour traiter les données du formulaire
@Override
public String login(HttpServletRequest request) {
String mail = request.getParameter("mail");
String mdp = request.getParameter("password");
logger.info("Data from login - mail : {} password : {}", mail, mdp );
User user = new User();
user.setMail(mail);
user.setDateCreation(new Date());
user.setPassword(passwordEncoder.encode(mdp));
try{
if(Utility.isUserExist(userRepository.findByMail(user.getMail()))){
userRepository.save(user);
return //TODO la jsp home.jsp
} else {
return //TODO la jsp login avec l'erreur en paramètre GET
}
} catch(Exception e){
logger.error("Impossible to save a new user : {}", e.getMessage());
return "Error : " + e.getMessage();
}
}
D'un point de vu bonne pratique, je ne sais même pas si la redirection est à faire dans le service ou ailleurs suivant l'exposition des différentes couches MVC.
Merci de votre aide par avance
- Edité par Community Technologie 18 novembre 2022 à 9:48:44
Redirection sans Servlet
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.