在看springMVC源碼的時候,不知道是我哪裏配置錯了,仍是這就是springmvc的坑?java
按照 DispatcherServlet 源碼 說明,
注入 LocaleResolver的 實現類 SessionLocaleResolver 或 LocaleContextResolver 的bean。spring
便可根據瀏覽器語言環境的自動切花locale環境,瀏覽器
SessionLocaleResolver類的部分源碼以下 session
/** * Determine the default locale for the given request, //肯定給定請求的默認區域設置 * Called if no Locale session attribute has been found. * <p>The default implementation returns the specified default locale, * if any, else falls back to the request's accept-header locale. * @param request the request to resolve the locale for * @return the default locale (never {@code null}) * @see #setDefaultLocale * @see javax.servlet.http.HttpServletRequest#getLocale() */ //protected 包外不容許掉用此方法, protected Locale determineDefaultLocale(HttpServletRequest request) { Locale defaultLocale = getDefaultLocale(); if (defaultLocale == null) { defaultLocale = request.getLocale(); } return defaultLocale; }
而SessionLocaleResolver 的父類 AbstractLocaleResolver.class 擁有這個方法 setDefaultLocalemvc
源碼是這樣的:this
/**
* 若是沒有找到其餘語言環境,則設置此解析器將返回的默認語言環境。
* Set a default Locale that this resolver will return if no other locale found.
*/
public void setDefaultLocale(@Nullable Locale defaultLocale) {
this.defaultLocale = defaultLocale;
}
我設置了這個參數以後,spa
@Bean public LocaleResolver localeResolver() { SessionLocaleResolver localeResolver = new SessionLocaleResolver(); //設置默認區域 localeResolver.setDefaultLocale(Locale.CHINA); return localeResolver; }
發現;
不管我怎麼修改瀏覽器的語言環境,都給我 返回的是 這個defaultLocalecode
說好的default呢,是我哪裏配錯了嗎?求幫助ci