|
17 | 17 | package org.springframework.web.servlet.i18n;
|
18 | 18 |
|
19 | 19 | import java.util.Locale;
|
| 20 | +import java.util.Optional; |
20 | 21 | import java.util.TimeZone;
|
21 | 22 | import java.util.function.Function;
|
22 | 23 |
|
|
57 | 58 | *
|
58 | 59 | * @author Juergen Hoeller
|
59 | 60 | * @author Vedran Pavic
|
| 61 | + * @author Sungbin Yang |
60 | 62 | * @since 27.02.2003
|
61 | 63 | * @see #setDefaultLocale
|
62 | 64 | * @see #setDefaultTimeZone
|
@@ -93,6 +95,11 @@ public class SessionLocaleResolver extends AbstractLocaleContextResolver {
|
93 | 95 | return (defaultLocale != null ? defaultLocale : request.getLocale());
|
94 | 96 | };
|
95 | 97 |
|
| 98 | + private Locale getLocaleFromRequest(HttpServletRequest request) { |
| 99 | + return Optional.ofNullable((Locale) WebUtils.getSessionAttribute(request, this.localeAttributeName)) |
| 100 | + .orElse(defaultLocaleFunction.apply(request)); |
| 101 | + } |
| 102 | + |
96 | 103 | private Function<HttpServletRequest, TimeZone> defaultTimeZoneFunction = request -> getDefaultTimeZone();
|
97 | 104 |
|
98 | 105 | /**
|
@@ -148,32 +155,21 @@ public void setDefaultTimeZoneFunction(Function<HttpServletRequest, TimeZone> de
|
148 | 155 |
|
149 | 156 | @Override
|
150 | 157 | public Locale resolveLocale(HttpServletRequest request) {
|
151 |
| - Locale locale = (Locale) WebUtils.getSessionAttribute(request, this.localeAttributeName); |
152 |
| - if (locale == null) { |
153 |
| - locale = this.defaultLocaleFunction.apply(request); |
154 |
| - } |
155 |
| - return locale; |
| 158 | + return getLocaleFromRequest(request); |
156 | 159 | }
|
157 | 160 |
|
158 | 161 | @Override
|
159 | 162 | public LocaleContext resolveLocaleContext(final HttpServletRequest request) {
|
160 | 163 | return new TimeZoneAwareLocaleContext() {
|
161 | 164 | @Override
|
162 | 165 | public Locale getLocale() {
|
163 |
| - Locale locale = (Locale) WebUtils.getSessionAttribute(request, localeAttributeName); |
164 |
| - if (locale == null) { |
165 |
| - locale = defaultLocaleFunction.apply(request); |
166 |
| - } |
167 |
| - return locale; |
| 166 | + return getLocaleFromRequest(request); |
168 | 167 | }
|
169 | 168 | @Override
|
170 | 169 | @Nullable
|
171 | 170 | public TimeZone getTimeZone() {
|
172 |
| - TimeZone timeZone = (TimeZone) WebUtils.getSessionAttribute(request, timeZoneAttributeName); |
173 |
| - if (timeZone == null) { |
174 |
| - timeZone = defaultTimeZoneFunction.apply(request); |
175 |
| - } |
176 |
| - return timeZone; |
| 171 | + return Optional.ofNullable((TimeZone) WebUtils.getSessionAttribute(request, timeZoneAttributeName)) |
| 172 | + .orElse(defaultTimeZoneFunction.apply(request)); |
177 | 173 | }
|
178 | 174 | };
|
179 | 175 | }
|
|
0 commit comments