Index: lams_common/src/java/org/lamsfoundation/lams/web/filter/LocaleFilter.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/web/filter/LocaleFilter.java,v diff -u -r1.17 -r1.18 --- lams_common/src/java/org/lamsfoundation/lams/web/filter/LocaleFilter.java 17 Sep 2006 06:14:22 -0000 1.17 +++ lams_common/src/java/org/lamsfoundation/lams/web/filter/LocaleFilter.java 11 Oct 2006 05:05:31 -0000 1.18 @@ -36,8 +36,6 @@ import org.apache.commons.lang.StringUtils; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; -import org.lamsfoundation.lams.util.Configuration; -import org.lamsfoundation.lams.util.ConfigurationKeys; import org.lamsfoundation.lams.util.LanguageUtil; import org.lamsfoundation.lams.web.session.SessionManager; import org.lamsfoundation.lams.web.util.AttributeNames; @@ -46,6 +44,10 @@ /** * Filter request to preferred locale according to user option in database, client browser locale or default locale. * The proity is user setting in database is highest, then browser locale, then the default locale. + *
+ * NOTICE: This filter must set after org.lamsfoundation.lams.web.session.SystemSessionFilter
+ * in web.xml because it need get value from SystemSession .
+ *
* @author Steve.Ni
*
* @version $Revision$
@@ -86,15 +88,17 @@
if(preferredLocale == null){
HttpSession sharedsession = SessionManager.getSession();
UserDTO user = (UserDTO) sharedsession.getAttribute(AttributeNames.USER);
- if(user != null){
- direction = user.getDirection();
- tz = user.getTimeZone();
- String lang = user.getLocaleLanguage();
- String country = user.getLocaleCountry();
- // would prefer both the language and country but that's not always feasible.
- // so we may end up with some confusing situations.
- if(!StringUtils.isEmpty(lang)){
- preferredLocale = new Locale(lang,country!=null?country:"");
+ if(sharedsession != null){
+ if(user != null){
+ direction = user.getDirection();
+ tz = user.getTimeZone();
+ String lang = user.getLocaleLanguage();
+ String country = user.getLocaleCountry();
+ // would prefer both the language and country but that's not always feasible.
+ // so we may end up with some confusing situations.
+ if(!StringUtils.isEmpty(lang)){
+ preferredLocale = new Locale(lang,country!=null?country:"");
+ }
}
}
}