Update of /var/cvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib
In directory
james.mmbase.org:/tmp/cvs-serv11798/applications/taglib/src/org/mmbase/bridge/jsp/taglib
Modified Files:
Tag: MMBase-1_8
LocaleTag.java
Log Message:
MMB-1765 LocaleTag does not revert the jstl locale situation.
See also:
http://cvs.mmbase.org/viewcvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib
See also: http://www.mmbase.org/jira/browse/MMB-1765
Index: LocaleTag.java
===================================================================
RCS file:
/var/cvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/LocaleTag.java,v
retrieving revision 1.28.2.2
retrieving revision 1.28.2.3
diff -u -b -r1.28.2.2 -r1.28.2.3
--- LocaleTag.java 16 Aug 2007 08:46:14 -0000 1.28.2.2
+++ LocaleTag.java 3 Jan 2009 11:08:43 -0000 1.28.2.3
@@ -17,18 +17,14 @@
import javax.servlet.jsp.PageContext;
import java.util.*;
-import org.mmbase.util.logging.Logger;
-import org.mmbase.util.logging.Logging;
-
/**
* Provides Locale (language, country) information to its body.
*
* @author Michiel Meeuwissen
- * @version $Id: LocaleTag.java,v 1.28.2.2 2007/08/16 08:46:14 michiel Exp $
+ * @version $Id: LocaleTag.java,v 1.28.2.3 2009/01/03 11:08:43 nklasens Exp $
*/
public class LocaleTag extends CloudReferrerTag {
- private static final Logger log =
Logging.getLoggerInstance(LocaleTag.class);
public static final String KEY =
"javax.servlet.jsp.jstl.fmt.locale.request";
public static final String TZ_KEY = "org.mmbase.timezone";
@@ -40,7 +36,8 @@
private Attribute timezone = Attribute.NULL;
protected Locale locale;
- protected Locale prevLocale = null;
+ protected Locale prevCloudLocale = null;
+ protected Locale prevJstlLocale = null;
protected Cloud cloud;
private String jspvar = null;
@@ -90,12 +87,12 @@
}
// compatibility with jstl fmt tags:
// should use their constant, but that would make compile-time
dependency.
- prevLocale = (Locale) pageContext.findAttribute(KEY);
+ prevJstlLocale = (Locale) pageContext.findAttribute(KEY);
pageContext.setAttribute(KEY, locale, SCOPE);
CloudProvider cloudProvider = findCloudProvider(false);
if (cloudProvider != null) {
cloud = cloudProvider.getCloudVar();
- prevLocale = cloud.getLocale();
+ prevCloudLocale = cloud.getLocale();
cloud.setLocale(locale);
} else {
cloud = null;
@@ -177,11 +174,14 @@
public int doEndTag() throws JspTagException {
if (locale != null) {
- if (prevLocale != null) {
- pageContext.setAttribute(KEY, prevLocale, SCOPE);
+ if (prevCloudLocale != null) {
if (cloud != null) {
- cloud.setLocale(prevLocale);
+ cloud.setLocale(prevCloudLocale);
+ }
}
+
+ if (prevJstlLocale != null) {
+ pageContext.setAttribute(KEY, prevJstlLocale, SCOPE);
} else {
pageContext.removeAttribute(KEY, SCOPE);
}
@@ -194,7 +194,8 @@
public void doFinally() {
cloud = null;
locale = null;
- prevLocale = null;
+ prevCloudLocale = null;
+ prevJstlLocale = null;
jspvar = null;
super.doFinally();
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs