Gestione del messaggio di errore per un modulo di login di Spring MVC

2

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?

    
posta Sotirios Delimanolis 13.02.2013 - 18:51
fonte

1 risposta

1

La gestione degli errori e la visualizzazione agli utenti possono essere univoci in base alla progettazione dell'interfaccia utente e al modo in cui desideri visualizzarli dall'utente. La visualizzazione su dispositivi mobili può essere diversa dalla visualizzazione su un desktop.

Quello che so è che è importante classificare questi errori. Vi sono errori di convalida, errori di accesso di sicurezza, errori critici (eccezioni del database i.e, eventuali eccezioni impreviste). E per ciascuna categoria, è possibile progettare un approccio diverso, ad esempio per l'errore critico, è possibile utilizzare una pagina dedicata che catturerà tutti gli errori critici. Per gli errori di convalida, è necessario visualizzarlo sulla stessa pagina in cui l'utente inserisce dati non validi e assicurarsi che il messaggio sia chiaro che riconoscerà immediatamente quali campi / input correggere, ecc.

La visualizzazione degli errori deve sempre essere facile da usare, diretta e appropriata.

    
risposta data 23.02.2013 - 08:48
fonte

Leggi altre domande sui tag