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

Modified Files:
      Tag: MMBase-1_8
        UrlTag.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: UrlTag.java
===================================================================
RCS file: 
/var/cvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/pageflow/UrlTag.java,v
retrieving revision 1.79.2.5
retrieving revision 1.79.2.6
diff -u -b -r1.79.2.5 -r1.79.2.6
--- UrlTag.java 19 Feb 2008 15:12:04 -0000      1.79.2.5
+++ UrlTag.java 19 Feb 2008 15:39:11 -0000      1.79.2.6
@@ -12,6 +12,7 @@
 import java.util.*;
 import java.io.*;
 import java.net.*;
+import java.util.regex.*;
 import org.mmbase.bridge.jsp.taglib.*;
 import org.mmbase.bridge.jsp.taglib.util.Attribute;
 import org.mmbase.bridge.jsp.taglib.util.Referids;
@@ -34,7 +35,7 @@
  * A Tag to produce an URL with parameters. It can use 'context' parameters 
easily.
  *
  * @author Michiel Meeuwissen
- * @version $Id: UrlTag.java,v 1.79.2.5 2008/02/19 15:12:04 michiel Exp $
+ * @version $Id: UrlTag.java,v 1.79.2.6 2008/02/19 15:39:11 michiel Exp $
  */
 
 public class UrlTag extends CloudReferrerTag  implements  ParamHandler {
@@ -145,6 +146,8 @@
         return true;
     }
 
+    final static Pattern ABSOLUTE_URLS = Pattern.compile("(?i)[a-z]+\\:.*");
+
     /**
      * @since MMBase-1.8.1
      */
@@ -154,6 +157,10 @@
         javax.servlet.http.HttpServletRequest req = 
(javax.servlet.http.HttpServletRequest) pageContext.getRequest();
 
         if (abs.equals("true")) {
+            if (ABSOLUTE_URLS.matcher(page).matches()) {
+                show.append(page);
+                return true;
+            } else {
             String scheme = req.getScheme();
             show.append(scheme).append("://");
             show.append(req.getServerName());
@@ -161,6 +168,7 @@
             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")) {
@@ -316,5 +324,8 @@
         return super.doEndTag();
     }
 
+    public static void main(String argv[]) {
+        System.out.println(ABSOLUTE_URLS.matcher(argv[0]).matches());
+    }
 
 }
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to