Author: jkoster
Date: 2009-05-18 14:15:11 +0200 (Mon, 18 May 2009)
New Revision: 35250
Modified:
CMSContainer/branches/b1_5/CMSContainer/cmsc/taglib/src/java/com/finalist/cmsc/taglib/ContentUrlTag.java
CMSContainer/branches/b1_5/CMSContainer/cmsc/taglib/src/java/com/finalist/cmsc/taglib/portlet/BasicURLTag.java
CMSContainer/branches/b1_5/CMSContainer/cmsc/taglib/src/tld/cmsc.tld
CMSContainer/branches/b1_5/CMSContainer/cmsc/utilities/src/java/com/finalist/cmsc/util/HttpUtil.java
Log:
CMSC-1403 - Add possibility to create absolute URLs for the BasicURLTag and
ContentUrlTag
Modified:
CMSContainer/branches/b1_5/CMSContainer/cmsc/taglib/src/java/com/finalist/cmsc/taglib/ContentUrlTag.java
===================================================================
---
CMSContainer/branches/b1_5/CMSContainer/cmsc/taglib/src/java/com/finalist/cmsc/taglib/ContentUrlTag.java
2009-05-18 12:02:58 UTC (rev 35249)
+++
CMSContainer/branches/b1_5/CMSContainer/cmsc/taglib/src/java/com/finalist/cmsc/taglib/ContentUrlTag.java
2009-05-18 12:15:11 UTC (rev 35250)
@@ -18,6 +18,7 @@
import org.mmbase.bridge.jsp.taglib.util.Attribute;
import com.finalist.cmsc.mmbase.ResourcesUtil;
+import com.finalist.cmsc.util.HttpUtil;
@SuppressWarnings("serial")
public class ContentUrlTag extends NodeReferrerTag {
@@ -83,31 +84,11 @@
}
- private String makeAbsolute(String url) {
- String webapp = getServerDocRoot((HttpServletRequest)
pageContext.getRequest());
- if (url.startsWith("/")) {
- url = webapp + url.substring(1);
- }
- else {
- url = webapp + url;
- }
- return url;
+ public String makeAbsolute(String url) {
+ return HttpUtil.makeAbsolute((HttpServletRequest)
pageContext.getRequest(), url);
}
- public static String getServerDocRoot(HttpServletRequest request) {
- StringBuffer s = new StringBuffer();
-
s.append(request.getScheme()).append("://").append(request.getServerName());
-
- int serverPort = request.getServerPort();
- if (serverPort != 80 && serverPort != 443) {
- s.append(':').append(Integer.toString(serverPort));
- }
- s.append('/');
- return s.toString();
- }
-
-
private String getContentUrl(Node node) {
return ResourcesUtil.getServletPathWithAssociation("content",
"/content/*", node.getStringValue("number"), node
.getStringValue("title"));
Modified:
CMSContainer/branches/b1_5/CMSContainer/cmsc/taglib/src/java/com/finalist/cmsc/taglib/portlet/BasicURLTag.java
===================================================================
---
CMSContainer/branches/b1_5/CMSContainer/cmsc/taglib/src/java/com/finalist/cmsc/taglib/portlet/BasicURLTag.java
2009-05-18 12:02:58 UTC (rev 35249)
+++
CMSContainer/branches/b1_5/CMSContainer/cmsc/taglib/src/java/com/finalist/cmsc/taglib/portlet/BasicURLTag.java
2009-05-18 12:15:11 UTC (rev 35250)
@@ -3,6 +3,7 @@
import java.io.IOException;
import javax.portlet.*;
+import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.PageContext;
@@ -16,6 +17,7 @@
import com.finalist.cmsc.beans.om.NavigationItem;
import com.finalist.cmsc.mmbase.ResourcesUtil;
import com.finalist.cmsc.services.sitemanagement.SiteManagement;
+import com.finalist.cmsc.util.HttpUtil;
import com.finalist.cmsc.util.ServerUtil;
/**
@@ -45,6 +47,7 @@
protected String portletMode;
protected String secure;
protected Boolean secureBoolean;
+ protected boolean absolute;
protected String windowState;
protected String var;
@@ -118,27 +121,28 @@
*/
@Override
public int doEndTag() throws JspException {
+ String urlString;
+ if (url == null) {
+ urlString = contenturl;
+ }
+ else {
+ urlString = url.toString();
+ }
+ if (absolute) {
+ urlString = HttpUtil.makeAbsolute((HttpServletRequest)
pageContext.getRequest(), urlString);
+ }
+
if (var == null) {
try {
JspWriter writer = pageContext.getOut();
- if (url == null) {
- writer.print(contenturl);
- }
- else {
- writer.print(url);
- }
+ writer.print(urlString);
}
catch (IOException ioe) {
throw new JspException("actionURL/renderURL Tag Exception: cannot
write to the output writer.", ioe);
}
}
else {
- if (url == null) {
- pageContext.setAttribute(var, contenturl, PageContext.PAGE_SCOPE);
- }
- else {
- pageContext.setAttribute(var, url.toString(),
PageContext.PAGE_SCOPE);
- }
+ pageContext.setAttribute(var, urlString, PageContext.PAGE_SCOPE);
}
page = null;
window = null;
@@ -319,4 +323,14 @@
public void setElementId(String elementId) {
this.elementId = elementId;
}
+
+
+ public void setAbsolute(boolean absolute) {
+ this.absolute = absolute;
+ }
+
+
+ public boolean isAbsolute() {
+ return absolute;
+ }
}
Modified: CMSContainer/branches/b1_5/CMSContainer/cmsc/taglib/src/tld/cmsc.tld
===================================================================
--- CMSContainer/branches/b1_5/CMSContainer/cmsc/taglib/src/tld/cmsc.tld
2009-05-18 12:02:58 UTC (rev 35249)
+++ CMSContainer/branches/b1_5/CMSContainer/cmsc/taglib/src/tld/cmsc.tld
2009-05-18 12:15:11 UTC (rev 35250)
@@ -679,6 +679,12 @@
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
+ <attribute>
+ <description>Defines if the URL should include the scheme, server
name and port</description>
+ <name>absolute</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ </attribute>
</tag>
<tag>
<name>renderURL</name>
@@ -720,7 +726,13 @@
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
- </tag>
+ <attribute>
+ <description>Defines if the URL should include the scheme, server
name and port</description>
+ <name>absolute</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ </attribute>
+ </tag>
<!-- ############## -->
<!-- HTML Form Tags -->
Modified:
CMSContainer/branches/b1_5/CMSContainer/cmsc/utilities/src/java/com/finalist/cmsc/util/HttpUtil.java
===================================================================
---
CMSContainer/branches/b1_5/CMSContainer/cmsc/utilities/src/java/com/finalist/cmsc/util/HttpUtil.java
2009-05-18 12:02:58 UTC (rev 35249)
+++
CMSContainer/branches/b1_5/CMSContainer/cmsc/utilities/src/java/com/finalist/cmsc/util/HttpUtil.java
2009-05-18 12:15:11 UTC (rev 35250)
@@ -549,5 +549,26 @@
}
return msg;
}
+
+ /**
+ * Adds server document root to the URL
+ * @param request
+ * @param url
+ * @return absolute url
+ */
+ public static String makeAbsolute(HttpServletRequest request, String url) {
+ if (url.indexOf("://") > -1) {
+ return url;
+ }
+ String webapp = getServerDocRoot(request);
+
+ if (url.startsWith("/")) {
+ url = webapp + url.substring(1);
+ }
+ else {
+ url = webapp + url;
+ }
+ return url;
+ }
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs