You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lo...@apache.org on 2014/03/17 11:35:28 UTC
svn commit: r1578292 - in /myfaces/tobago/branches/tobago-1.0.x/core/src:
main/java/org/apache/myfaces/tobago/renderkit/html/
main/java/org/apache/myfaces/tobago/taglib/decl/
main/java/org/apache/myfaces/tobago/util/
test/java/org/apache/myfaces/tobago...
Author: lofwyr
Date: Mon Mar 17 10:35:27 2014
New Revision: 1578292
URL: http://svn.apache.org/r1578292
Log:
TOBAGO-1374: link attribute contains faces mapping
Modified:
myfaces/tobago/branches/tobago-1.0.x/core/src/main/java/org/apache/myfaces/tobago/renderkit/html/CommandRendererHelper.java
myfaces/tobago/branches/tobago-1.0.x/core/src/main/java/org/apache/myfaces/tobago/taglib/decl/HasLink.java
myfaces/tobago/branches/tobago-1.0.x/core/src/main/java/org/apache/myfaces/tobago/util/StringUtils.java
myfaces/tobago/branches/tobago-1.0.x/core/src/test/java/org/apache/myfaces/tobago/util/StringUtilsUnitTest.java
Modified: myfaces/tobago/branches/tobago-1.0.x/core/src/main/java/org/apache/myfaces/tobago/renderkit/html/CommandRendererHelper.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-1.0.x/core/src/main/java/org/apache/myfaces/tobago/renderkit/html/CommandRendererHelper.java?rev=1578292&r1=1578291&r2=1578292&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-1.0.x/core/src/main/java/org/apache/myfaces/tobago/renderkit/html/CommandRendererHelper.java (original)
+++ myfaces/tobago/branches/tobago-1.0.x/core/src/main/java/org/apache/myfaces/tobago/renderkit/html/CommandRendererHelper.java Mon Mar 17 10:35:27 2014
@@ -206,11 +206,10 @@ public class CommandRendererHelper {
}
} else if (component.getAttributes().get(ATTR_ACTION_LINK) != null) {
- String link = (String) component.getAttributes().get(ATTR_ACTION_LINK);
+ final String link = (String) component.getAttributes().get(ATTR_ACTION_LINK);
if (link.startsWith("/")) { // internal absolute link
- url = viewHandler.getActionURL(facesContext, link);
- url = externalContext.encodeActionURL(url);
- } else if (link.contains(":")) { // external link
+ url = externalContext.encodeResourceURL(externalContext.getRequestContextPath() + link);
+ } else if (org.apache.myfaces.tobago.util.StringUtils.isUrl(link)) { // external link
url = link;
} else { // internal relative link
url = externalContext.encodeResourceURL(link);
Modified: myfaces/tobago/branches/tobago-1.0.x/core/src/main/java/org/apache/myfaces/tobago/taglib/decl/HasLink.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-1.0.x/core/src/main/java/org/apache/myfaces/tobago/taglib/decl/HasLink.java?rev=1578292&r1=1578291&r2=1578292&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-1.0.x/core/src/main/java/org/apache/myfaces/tobago/taglib/decl/HasLink.java (original)
+++ myfaces/tobago/branches/tobago-1.0.x/core/src/main/java/org/apache/myfaces/tobago/taglib/decl/HasLink.java Mon Mar 17 10:35:27 2014
@@ -31,7 +31,7 @@ public interface HasLink {
* <dd>Starts with a slash '/' character. The context path will be added.
* A session id will be added, if needed.</dd>
* <dt>external link</dt>
- * <dd>Contains a colon ':' character.
+ * <dd>Starts with protocol followed by ':' character.
* The link will not be modified.</dd>
* <dt>internal relative link</dt>
* <dd>Any other strings. A session id will be added, if needed.</dd>
Modified: myfaces/tobago/branches/tobago-1.0.x/core/src/main/java/org/apache/myfaces/tobago/util/StringUtils.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-1.0.x/core/src/main/java/org/apache/myfaces/tobago/util/StringUtils.java?rev=1578292&r1=1578291&r2=1578292&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-1.0.x/core/src/main/java/org/apache/myfaces/tobago/util/StringUtils.java (original)
+++ myfaces/tobago/branches/tobago-1.0.x/core/src/main/java/org/apache/myfaces/tobago/util/StringUtils.java Mon Mar 17 10:35:27 2014
@@ -85,4 +85,22 @@ public class StringUtils {
String.valueOf(LabelWithAccessKey.INDICATOR), LabelWithAccessKey.ESCAPED_INDICATOR);
}
+ /**
+ * Checks if the String starts like a url, e.g. http: or xyz:
+ */
+ public static boolean isUrl(final String link) {
+ if (link == null) {
+ return false;
+ }
+ int colon = link.indexOf(':');
+ if (colon < 1) {
+ return false;
+ }
+ for (int i = 0; i < colon; i++) {
+ if (!Character.isLetter(link.charAt(i))) {
+ return false;
+ }
+ }
+ return true;
+ }
}
Modified: myfaces/tobago/branches/tobago-1.0.x/core/src/test/java/org/apache/myfaces/tobago/util/StringUtilsUnitTest.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-1.0.x/core/src/test/java/org/apache/myfaces/tobago/util/StringUtilsUnitTest.java?rev=1578292&r1=1578291&r2=1578292&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-1.0.x/core/src/test/java/org/apache/myfaces/tobago/util/StringUtilsUnitTest.java (original)
+++ myfaces/tobago/branches/tobago-1.0.x/core/src/test/java/org/apache/myfaces/tobago/util/StringUtilsUnitTest.java Mon Mar 17 10:35:27 2014
@@ -33,4 +33,17 @@ public class StringUtilsUnitTest extends
assertEquals("Xxx", StringUtils.firstToUpperCase("Xxx"));
assertEquals(" x ", StringUtils.firstToUpperCase(" x "));
}
+
+ public void testIsUrl() {
+ assertTrue(StringUtils.isUrl("http://www.apache.org/"));
+ assertTrue(StringUtils.isUrl("http:"));
+ assertTrue(StringUtils.isUrl("ftp:"));
+ assertTrue(StringUtils.isUrl("abc:fjdskal:fdsa"));
+
+ assertFalse(StringUtils.isUrl(null));
+ assertFalse(StringUtils.isUrl("null"));
+ assertFalse(StringUtils.isUrl("/test"));
+ assertFalse(StringUtils.isUrl("test.xhtml?id=#page:input"));
+ assertFalse(StringUtils.isUrl(":test"));
+ }
}