Browse Source

Update LocaleContextResolver to implement LocaleResolver

This commit updates LocaleContextResolver to implement LocaleResolver
using default methods, which simplifies AbstractLocaleContextResolver
and aligns it more closely with AbstractLocaleResolver.

See gh-27609
pull/28569/head
Vedran Pavic 5 years ago committed by Sam Brannen
parent
commit
94cc2da33b
  1. 15
      spring-webmvc/src/main/java/org/springframework/web/servlet/LocaleContextResolver.java
  2. 20
      spring-webmvc/src/main/java/org/springframework/web/servlet/i18n/AbstractLocaleContextResolver.java

15
spring-webmvc/src/main/java/org/springframework/web/servlet/LocaleContextResolver.java

@ -22,12 +22,16 @@ import jakarta.servlet.http.HttpServletRequest; @@ -22,12 +22,16 @@ import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.context.i18n.LocaleContext;
import org.springframework.context.i18n.SimpleLocaleContext;
import org.springframework.lang.Nullable;
/**
* Extension of {@link LocaleResolver} that adds support for a rich locale context
* (potentially including locale and time zone information).
*
* <p>Also provides pre-implemented versions of {@link #resolveLocale} and {@link #setLocale},
* delegating to {@link #resolveLocaleContext} and {@link #setLocaleContext}.
*
* @author Juergen Hoeller
* @since 4.0
* @see org.springframework.context.i18n.LocaleContext
@ -73,4 +77,15 @@ public interface LocaleContextResolver extends LocaleResolver { @@ -73,4 +77,15 @@ public interface LocaleContextResolver extends LocaleResolver {
void setLocaleContext(HttpServletRequest request, @Nullable HttpServletResponse response,
@Nullable LocaleContext localeContext);
@Override
default Locale resolveLocale(HttpServletRequest request) {
Locale locale = resolveLocaleContext(request).getLocale();
return (locale != null ? locale : request.getLocale());
}
@Override
default void setLocale(HttpServletRequest request, @Nullable HttpServletResponse response, @Nullable Locale locale) {
setLocaleContext(request, response, (locale != null ? new SimpleLocaleContext(locale) : null));
}
}

20
spring-webmvc/src/main/java/org/springframework/web/servlet/i18n/AbstractLocaleContextResolver.java

@ -16,13 +16,8 @@ @@ -16,13 +16,8 @@
package org.springframework.web.servlet.i18n;
import java.util.Locale;
import java.util.TimeZone;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.context.i18n.SimpleLocaleContext;
import org.springframework.lang.Nullable;
import org.springframework.web.servlet.LocaleContextResolver;
@ -32,9 +27,6 @@ import org.springframework.web.servlet.LocaleContextResolver; @@ -32,9 +27,6 @@ import org.springframework.web.servlet.LocaleContextResolver;
* <p>Provides support for a {@linkplain #setDefaultLocale(Locale) default locale}
* and a {@linkplain #setDefaultTimeZone(TimeZone) default time zone}.
*
* <p>Also provides pre-implemented versions of {@link #resolveLocale} and {@link #setLocale},
* delegating to {@link #resolveLocaleContext} and {@link #setLocaleContext}.
*
* @author Juergen Hoeller
* @since 4.0
* @see #setDefaultLocale
@ -63,16 +55,4 @@ public abstract class AbstractLocaleContextResolver extends AbstractLocaleResolv @@ -63,16 +55,4 @@ public abstract class AbstractLocaleContextResolver extends AbstractLocaleResolv
return this.defaultTimeZone;
}
@Override
public Locale resolveLocale(HttpServletRequest request) {
Locale locale = resolveLocaleContext(request).getLocale();
return (locale != null ? locale : request.getLocale());
}
@Override
public void setLocale(HttpServletRequest request, @Nullable HttpServletResponse response, @Nullable Locale locale) {
setLocaleContext(request, response, (locale != null ? new SimpleLocaleContext(locale) : null));
}
}

Loading…
Cancel
Save