When creating a CookieLocaleResolver you can set the path , but it will be hardcoded.
Example
<bean id="localeResolver" class="CookieLocaleResolver"> <property name="cookiePath" value="test" /> </bean>
Another possible solution is to override LocaleResolver
public class MyCookieLocaleResolver extends CookieLocaleResolver { @Override public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) { if (locale != null) { // Set request attribute and add cookie. request.setAttribute(LOCALE_REQUEST_ATTRIBUTE_NAME, locale); addCookie(response, locale.toString()); } else { // Set request attribute to fallback locale and remove cookie. request.setAttribute(LOCALE_REQUEST_ATTRIBUTE_NAME, determineDefaultLocale(request)); removeCookie(response); } } public void addCookie(HttpServletRequest request, HttpServletResponse response, String cookieValue) { Cookie cookie = createCookie(request, cookieValue); Integer maxAge = getCookieMaxAge(); if (maxAge != null) { cookie.setMaxAge(maxAge); } if (isCookieSecure()) { cookie.setSecure(true); } response.addCookie(cookie); if (logger.isDebugEnabled()) { logger.debug("Added cookie with name [" + getCookieName() + "] and value [" + cookieValue + "]"); } } protected Cookie createCookie(HttpServletRequest request, String cookieValue) { Cookie cookie = new Cookie(getCookieName(), cookieValue); if (getCookieDomain() != null) { cookie.setDomain(getCookieDomain()); } cookie.setPath(request.getContextPath()); return cookie; } }
source share