SAP Hybris: Как загрузить контекст приложения в пользовательский контроллер страницы ошибок? - PullRequest
1 голос
/ 24 сентября 2019

Я использую SAP Hybris 1811 на моей локальной машине.У меня есть пользовательский обработчик страницы ошибок в web.xml

<error-page>
        <exception-type>java.lang.NullPointerException</exception-type>
        <location>/errors</location>
</error-page>

и контроллер для обработки этой ошибки (обратите внимание, что она не расширяется AbstractPageController, по причине, прочитанной далее)

@Controller
public class ErrorController {
    @RequestMapping(value = "/errors", method = RequestMethod.GET)
    public ModelAndView handleErrors(Model model, HttpServletRequest httpRequest) {
        httpRequest.getLocale();
        .... some code here
    }
}

Мне нужно получить правильный текущий locale приложения для отображения правильного языка на странице ошибок, но он все еще получает только английский, хотя это должен быть другой язык.

Я попытался загрузить i18nService, и этоНапример, локаль такая, но она все еще "en":

SpringHelper.getSpringBean(httpRequest, "i18nService", DefaultI18NService.class, true).getCurrentLocale()

Я думал, что проблема в том, что ErrorController не расширяет AbstractPageController, но когда я попробовал это, ни один изметоды ошибки могут быть достигнуты.

1 Ответ

0 голосов
/ 27 сентября 2019

В конце концов я смог получить правильную локаль, например, такую:

Locale loc = ((Locale)((CommerceJaloSession)this.pageContext.getSession().getAttribute("jalosession")).getAttribute("locale"));
...