You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by wo...@apache.org on 2009/04/09 19:47:06 UTC
svn commit: r763746 -
/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/page/document/proxy/NodeProxy.java
Author: woonsan
Date: Thu Apr 9 17:47:06 2009
New Revision: 763746
URL: http://svn.apache.org/viewvc?rev=763746&view=rev
Log:
JS2-482: Fixes the page node url generation.
Each path component in url should be encoded by ISO-8859-1.
Modified:
portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/page/document/proxy/NodeProxy.java
Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/page/document/proxy/NodeProxy.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/page/document/proxy/NodeProxy.java?rev=763746&r1=763745&r2=763746&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/page/document/proxy/NodeProxy.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/page/document/proxy/NodeProxy.java Thu Apr 9 17:47:06 2009
@@ -16,12 +16,14 @@
*/
package org.apache.jetspeed.page.document.proxy;
+import java.io.UnsupportedEncodingException;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
+import java.net.URLEncoder;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.Iterator;
import java.util.List;
-import java.util.Collections;
import org.apache.jetspeed.om.folder.Folder;
import org.apache.jetspeed.om.folder.MenuDefinition;
@@ -59,8 +61,18 @@
* path - view path
*/
private String path;
+
+ /**
+ * url - view url
+ */
+ private String url;
/**
+ * urlEncoding - the name of a character encoding to be used in encoding path component name.
+ */
+ private String urlEncoding = "ISO-8859-1";;
+
+ /**
* hidden - hidden status of this or parent node
*/
private boolean hidden;
@@ -103,23 +115,41 @@
{
super(view, locatorName);
this.parent = parent;
+
if ((parent != null) && (name != null))
{
NodeProxy parentProxy = getNodeProxy(parent);
+
String parentPath = parentProxy.getPath();
+ String parentUrl = parentProxy.getUrl();
+ String urlEncodedName = name;
+
+ try
+ {
+ urlEncodedName = URLEncoder.encode(name, urlEncoding);
+ }
+ catch (UnsupportedEncodingException e)
+ {
+ // do nothing. just use the plain name instead.
+ }
+
if (parentPath.endsWith(Folder.PATH_SEPARATOR))
{
this.path = parentPath + name;
+ this.url = parentUrl + urlEncodedName;
}
else
{
this.path = parentPath + Folder.PATH_SEPARATOR + name;
+ this.url = parentUrl + Folder.PATH_SEPARATOR + urlEncodedName;
}
+
this.hidden = (hidden || parentProxy.isHidden());
}
else
{
this.path = Folder.PATH_SEPARATOR;
+ this.url = Folder.PATH_SEPARATOR;
this.hidden = hidden;
}
}
@@ -161,7 +191,7 @@
*/
public String getUrl()
{
- return path;
+ return url;
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org