Update of /var/cvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/pageflow
In directory james.mmbase.org:/tmp/cvs-serv31443

Modified Files:
        Url.java 
Log Message:
MMB-1600


See also: 
http://cvs.mmbase.org/viewcvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/pageflow
See also: http://www.mmbase.org/jira/browse/MMB-1600


Index: Url.java
===================================================================
RCS file: 
/var/cvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/pageflow/Url.java,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -b -r1.36 -r1.37
--- Url.java    25 Jan 2008 10:20:21 -0000      1.36
+++ Url.java    19 Feb 2008 15:42:15 -0000      1.37
@@ -9,7 +9,9 @@
 */
 package org.mmbase.bridge.jsp.taglib.pageflow;
 
+
 import java.util.*;
+import java.util.regex.Pattern;
 import java.net.*;
 import javax.servlet.jsp.JspTagException;
 import javax.servlet.http.HttpServletRequest;
@@ -33,7 +35,7 @@
  * <p>
  * The creation of the URL is delegated to the MMBase framework.
  * </p>
- * @version $Id: Url.java,v 1.36 2008/01/25 10:20:21 michiel Exp $;
+ * @version $Id: Url.java,v 1.37 2008/02/19 15:42:15 michiel Exp $;
  * @since MMBase-1.9
  */
 public class Url implements Comparable, CharSequence, Casting.Unwrappable {
@@ -166,6 +168,8 @@
         }
         return result;
     }
+
+    final static Pattern ABSOLUTE_URLS = Pattern.compile("(?i)[a-z]+\\:.*");
     /**
      *
      */
@@ -178,13 +182,18 @@
         HttpServletRequest req = (HttpServletRequest) 
tag.getPageContext().getRequest();
 
         if (abs.equals("true")) {
-            show.append(req.getScheme()).append("://");
+            if (ABSOLUTE_URLS.matcher(page).matches()) {
+                show.append(page);
+                return true;
+            } else {
+                String scheme = req.getScheme();
+                show.append(scheme).append("://");
             show.append(req.getServerName());
             int port = req.getServerPort();
-            String scheme = req.getScheme();
             show.append((port == 80 && "http".equals(scheme)) ||
                         (port == 443 && "https".equals(scheme))
                         ? "" : ":" + port);
+            }
         } else if (abs.equals("server")) {
             //show.append("/");
         } else if (abs.equals("context")) {
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to