Questo può essere applicato a molti scenari di gestione degli errori, ma sono curioso di sapere come farlo in uno scenario di accesso.
Dato questo metodo del controller Spring:
@RequestMapping(value = "/account/login", method = RequestMethod.POST)
public String login(@RequestParam("username") String aUsername,
@RequestParam("password") String aPassword,
Model model)
{
try {
accountService.login(aUsername, aPassword);
} catch (LoginException e) {
// log e
// add an error to request scope
model.addAttribute("error", e.getMessage);
return "login"; // return to login page
}
// success, show profile
return "redirect:profile";
}
E un modulo login.html (sto usando thymeleaf, ma seguo la logica, simile a jsp ):
<!-- This is saying, if ${error} is set, use it instead of the content of p, 'No error' -->
<p th:if="${error}" th:text="${error}">No error</p>
<form method="post" action="#" th:action="@{/account/login}">
Username: <input name="username" type="text" />
Password: <input name="password" type="text" />
<input name="login" type="submit" value="Login" />
</form>
È questo il modo in cui la gestione degli errori viene solitamente eseguita nelle applicazioni web java? Ovunque può capitare un errore, ti diverti con% diverso di% s? C'è un modo più pulito, o più generico, per farlo?