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