You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2009/09/29 00:52:55 UTC
svn commit: r819764 - in
/myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit:
JSFAttr.java html/HtmlLinkRendererBase.java
Author: lu4242
Date: Mon Sep 28 22:52:55 2009
New Revision: 819764
URL: http://svn.apache.org/viewvc?rev=819764&view=rev
Log:
MYFACES-2284 Allow h:outputLink "fragment" property to append text to url after '#' (Thanks to Jakob Korherr for provide this patch)
Modified:
myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/JSFAttr.java
myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlLinkRendererBase.java
Modified: myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/JSFAttr.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/JSFAttr.java?rev=819764&r1=819763&r2=819764&view=diff
==============================================================================
--- myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/JSFAttr.java (original)
+++ myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/JSFAttr.java Mon Sep 28 22:52:55 2009
@@ -112,6 +112,9 @@
String WARN_STYLE_ATTR = "warnStyle";
String TITLE_ATTR = "title";
String TOOLTIP_ATTR = "tooltip";
+
+ // HtmlOutputLink Attributes
+ String FRAGMENT_ATTR = "fragment";
// GraphicImage attributes
String NAME_ATTR = "name";
Modified: myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlLinkRendererBase.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlLinkRendererBase.java?rev=819764&r1=819763&r2=819764&view=diff
==============================================================================
--- myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlLinkRendererBase.java (original)
+++ myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlLinkRendererBase.java Mon Sep 28 22:52:55 2009
@@ -34,6 +34,7 @@
import javax.faces.component.behavior.ClientBehavior;
import javax.faces.component.behavior.ClientBehaviorHolder;
import javax.faces.component.html.HtmlCommandLink;
+import javax.faces.component.html.HtmlOutputLink;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
import javax.faces.event.ActionEvent;
@@ -636,7 +637,8 @@
//check if there is an anchor # in it
int index = href.indexOf('#');
String anchorString = null;
- if (index > -1)
+ boolean isAnchorInHref = (index > -1);
+ if (isAnchorInHref)
{
// remove anchor element and add it again after the parameter are encoded
anchorString = href.substring(index,href.length());
@@ -650,7 +652,21 @@
writer.getCharacterEncoding());
href = hrefBuf.toString();
}
- if (index > -1)
+ // check for the fragement attribute
+ String fragmentAttr = null;
+ if (output instanceof HtmlOutputLink)
+ {
+ fragmentAttr = ((HtmlOutputLink) output).getFragment();
+ }
+ else
+ {
+ fragmentAttr = (String) output.getAttributes().get(JSFAttr.FRAGMENT_ATTR);
+ }
+ if (fragmentAttr != null && !"".equals(fragmentAttr))
+ {
+ href += "#" + fragmentAttr;
+ }
+ else if (isAnchorInHref)
{
href += anchorString;
}