java - Spring MVC: Fallback for unknown language code in uri parameter value -
im trying build first spring mvc 4 app i18n support , thinking how can use default/fallback locale in case of user manipulating language uri parameter non existing or supported locale example http://localhost.de?lang=abc
im using code
@bean public localeresolver localeresolver() { sessionlocaleresolver sessionlocaleresolver = new sessionlocaleresolver(); sessionlocaleresolver.setdefaultlocale(locale.german); return sessionlocaleresolver; } which works in general if open url first time seems not work case describing. know there mechanism use default messages properties file set default/fallback locale case. need implement maybe custom filter?
my suggestion subclass sessionlocaleresolver , override getlocale method:
@springbootapplication public class demoapplication { public static void main(string[] args) { springapplication.run(demoapplication.class, args); } private static set<locale> allowedlocales; static { hashset<locale> allowed = new hashset<>(); allowed.add(locale.german); allowed.add(locale.canada); allowedlocales = collections.unmodifiableset(allowed); } @bean localeresolver localeresolver() { return new limitedsessionlocaleresolver(); } class limitedsessionlocaleresolver extends sessionlocaleresolver { @override public locale resolvelocale(httpservletrequest request) { locale locale = super.resolvelocale(request); if (!allowedlocales.contains(locale)) { return determinedefaultlocale(request); } return locale; } } } this not modify spring classes in major way , going work without issues foreseeable future.
Comments
Post a Comment