Bonjour,
Dans une application Spring MVC nous avons un contrôleur chargé de la génération du menu.
Chauqe entrée du menu est représentée par une clfe pour l'internationalisation ("menu.home, menu.admin, menu.admin.roles, etc"). Nous voudrions traduire cela mais en liant le moins possible notre contrôleur.
Je sais que les contrôleurs (AsbtractController en tout cas) ont accès au 'MessageSource' via la méthode getMessageSourceAccessor() mais nous préfèrerions injecter un ResourceBundle.
J'ai vu que la classe ResourceBundleMessageSource possède une méthode getResourceBundle(String name, Locale l).
Ma question : est-il possible d'injecter dans un bean le résultat d'une méthode d'un autre bean ? Mon but serais d'injecter le ResourceBundle obtenu depuis le ResourceBundelMessageSource.
Merci
Edit : Bien évidemment il me reste la possibilité de créer un Objet dédié à cela.
Mais je ne trouve pas ça super..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public class ResourceBundleGetter extends ResourceBundle { private ResourceBundleMessageSource source; private String bundleName; public ResourceBundleGetter(ResourceBundleMessageSource src, String name) { this.source = src; this.bundleName = name; // Un truc du style this = src.getResourceBundle(name, Locale.getLocale()); } }
Partager