From 712a63205c8b7c80352b7fbd2b73c142aec31fc1 Mon Sep 17 00:00:00 2001 From: Sebastien Deleuze Date: Tue, 20 Dec 2016 22:29:48 +0100 Subject: [PATCH] Add HttpHeaders#setAcceptLanguageAsLocale(Locale) Issue: SPR-15024 --- .../main/java/org/springframework/http/HttpHeaders.java | 9 +++++++++ .../java/org/springframework/http/HttpHeadersTests.java | 3 +++ 2 files changed, 12 insertions(+) diff --git a/spring-web/src/main/java/org/springframework/http/HttpHeaders.java b/spring-web/src/main/java/org/springframework/http/HttpHeaders.java index 95aec69306..6c0ef2e669 100644 --- a/spring-web/src/main/java/org/springframework/http/HttpHeaders.java +++ b/spring-web/src/main/java/org/springframework/http/HttpHeaders.java @@ -475,6 +475,15 @@ public class HttpHeaders implements MultiValueMap, Serializable return Collections.emptyList(); } + /** + * A variant of {@link #setAcceptLanguage(List)} that sets the {@literal Accept-Language} + * header value to the specified locale. + * @since 5.0 + */ + public void setAcceptLanguageAsLocale(Locale locale) { + setAcceptLanguage(Collections.singletonList(new Locale.LanguageRange(locale.toLanguageTag()))); + } + /** * A variant of {@link #getAcceptLanguage()} that converts each * {@link java.util.Locale.LanguageRange} to a {@link Locale} and returns diff --git a/spring-web/src/test/java/org/springframework/http/HttpHeadersTests.java b/spring-web/src/test/java/org/springframework/http/HttpHeadersTests.java index 42a0f6faa9..ce7e790ab7 100644 --- a/spring-web/src/test/java/org/springframework/http/HttpHeadersTests.java +++ b/spring-web/src/test/java/org/springframework/http/HttpHeadersTests.java @@ -438,6 +438,9 @@ public class HttpHeadersTests { assertEquals(expectedRanges, headers.getAcceptLanguage()); assertEquals(Locale.forLanguageTag("fr-ch"), headers.getAcceptLanguageAsLocale()); + + headers.setAcceptLanguageAsLocale(Locale.FRANCE); + assertEquals(Locale.FRANCE, headers.getAcceptLanguageAsLocale()); } @Test