2015-05-08 10 views

risposta

8

Diversi modi per farlo.

Se si desidera aggiungere una variabile a tutte le viste servite da un singolo controller, è possibile aggiungere un metodo annotato @ModelAttribute - see reference doc.

Si noti che è anche possibile, utilizzando lo stesso meccanismo @ModelAttribute , indirizzare più controller contemporaneamente. A tale scopo, è possibile implementare il metodo @ModelAttribute in una classe annotata con - see reference doc.

+0

'@ ControllerAdvice' funzionato come un fascino per me. – demaniak

1

Ti potrebbe interessare dare un'occhiata a @ModelAttribute. http://www.thymeleaf.org/doc/articles/springmvcaccessdata.html

Blockquote In Thymeleaf, questi attributi modello (o variabili di contesto in Thymeleaf gergo) si può accedere con la seguente sintassi: $ {} attributeName, dove attributeName nel nostro caso è messaggi. Questa è un'espressione EL primavera.

1

Se si desidera semplicemente qualcosa dal proprio application.properties nel modello thymeleaf, è possibile utilizzare Spring SpEL.

${@environment.getProperty('name.of.the.property')} 
0

@ControllerAdvice lavoro per me:

@ControllerAdvice(annotations = RestController.class) 
public class AnnotationAdvice { 

    @Autowired 
    UserServiceImpl userService; 

    @ModelAttribute("currentUser") 
    public User getCurrentUser() { 
     UserDetails userDetails = (UserDetails) 
     SecurityContextHolder.getContext() 
       .getAuthentication().getPrincipal(); 

     return userService.findUserByEmail(userDetails.getUsername()); 
    } 
    } 
Problemi correlati