2016-08-04 29 views
0

Wie erhalten Sie Benutzerobjektdetails in der JSP-Seite? Im Folgenden Code funktioniert in Spring Framework fein 3, aber Fehler gibt im Frühjahr 4.Wie können Benutzerobjektdetails in der jsp-Seite in Spring Framework (4) ordnungsgemäß abgerufen werden?

Codeblock

<span class="header-label">${pageContext.request.userPrincipal.principal.firstName} ${pageContext.request.userPrincipal.principal.lastName}</span> 

Fehler in Spring 4 (Eclipse-IDE) gegeben, obwohl funktioniert gut, wenn

eingesetzt
Multiple annotations found at this line: 
    - The method getPrincipal() is undefined for the type 
    Principal 
    - javax.servlet.jsp.PageContext cannot be resolved to a 
    type 
    - javax.servlet.jsp.JspException cannot be resolved to a 
    type 

Antwort

0

Sie kann es zu der Modellvariable der Seite hinzufügen:

@RequestMapping(value = "/page", method = RequestMethod.GET) 
public String showPage(Model model) { 
    model.addAttribute("user", userdto); 
    return "index"; 
} 

In der Seite verwenden Sie es wie folgt:

<span class="header-label">${user.firstName} ${user.lastName}</span> 
0

In Ihrem Ausdruck ist ein Fehler aufgetreten. Am besten, mit der Hilfe von einigen javadocs (HttpServletRequest und Principal) könnte der Ausdruck sein:

${pageContext.request.userPrincipal.name} 

du versuchen.

Aber ein Principal ist nicht das genaue Äquivalent eines Benutzers. Es ist eher eine Authentisierungsperspektive eines Subject (der ungefähr der Benutzer ist). Es stellt eines der Mittel dar, mit denen sich ein Subjekt anmelden muss. Nach allem, was wir wissen, könnte die Namenseigenschaft der Benutzername oder eine Kreditkartennummer sein.

Es ist wirklich unwahrscheinlich, dass Sie den Vor- und Nachnamen vom Prinzipal bekommen.

+0

Wir verwenden den benutzerdefinierten Benutzerdetaildienst für spring, der alle für das benutzerdefinierte UserDetails-Objekt erforderlichen Attribute abruft. Also muss ich die Werte mit Principal bekommen, was in unserem Fall dem User entspricht ... – Harinder

+0

Vielleicht können diese Links helfen: http://stackoverflow.com/questions/24562/when-using-spring-security-what-is Der richtige Weg zu erhalten-Strom-Benutzernamen-i und http://StackOverflow.com/Questions/8764545/How-to-get-active-users-Userdetails –