Передать переменную сеанса в MessageSource

У меня есть контроллер, который показывает форму и загружает сообщения из файла свойств. Я расширил ReloadableResourceBundleMessageSource и назвал его DatabaseMessageSource. Теперь, если в базе данных есть сообщение, оно будет получено, а если не по умолчанию, то, что находится в файле свойств. Ссылка на пример

Мой поиск в базе данных называется getCode(companyId, code). Чтобы приведенный выше пример работал, я просто передал 1 вместо companyId.

Я хотел бы передать идентификатор компании, который находится в сеансе, в DatabaseMessageSource, чтобы он мог получать правильные сообщения для этой конкретной компании. Кто-нибудь знает, как я могу это сделать?


person blong824    schedule 18.05.2012    source источник


Ответы (1)


Вы можете получить текущий HttpSession в любой момент, используя это:

ServletRequestAttributes attr = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
HttpSession session = attr.getRequest().getSession(); 

Затем получите свой атрибут оттуда.

person skaffman    schedule 18.05.2012
comment
Большое спасибо. Работал идеально. - person blong824; 18.05.2012