You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by bo...@apache.org on 2006/06/28 15:25:26 UTC
svn commit: r417751 -
/myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/LinkRenderer.java
Author: bommel
Date: Wed Jun 28 06:25:26 2006
New Revision: 417751
URL: http://svn.apache.org/viewvc?rev=417751&view=rev
Log:
tc:link attribute link supports f:param TOBAGO-78
Modified:
myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/LinkRenderer.java
Modified: myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/LinkRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/LinkRenderer.java?rev=417751&r1=417750&r2=417751&view=diff
==============================================================================
--- myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/LinkRenderer.java (original)
+++ myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/LinkRenderer.java Wed Jun 28 06:25:26 2006
@@ -40,9 +40,11 @@
import org.apache.myfaces.tobago.webapp.TobagoResponseWriter;
import javax.faces.component.UIComponent;
+import javax.faces.component.UIParameter;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
import java.io.IOException;
+import java.net.URLDecoder;
public class LinkRenderer extends CommandRendererBase{
@@ -61,7 +63,30 @@
+ " label = " + component.getAttributes().get(ATTR_LABEL));
action = "";
}
- href = HtmlUtils.generateUrl(facesContext, action);
+
+ action = HtmlUtils.generateUrl(facesContext, action);
+ StringBuffer sb = new StringBuffer(action);
+
+ boolean questionMark = action.contains("?");
+ for (Object o : component.getChildren()) {
+ UIComponent child = (UIComponent) o;
+ if (child instanceof UIParameter) {
+ UIParameter parameter = (UIParameter) child;
+ if (questionMark) {
+ sb.append("&");
+ } else {
+ sb.append("?");
+ questionMark = true;
+ }
+ sb.append(parameter.getName());
+ sb.append("=");
+ Object value = parameter.getValue();
+ // TODO encoding
+ sb.append(value!=null?URLDecoder.decode(value.toString()):null);
+ }
+ }
+ href = sb.toString();
+
} else if (component.getAttributes().get(ATTR_ACTION_ONCLICK) != null) {
onclick = (String) component.getAttributes().get(ATTR_ACTION_ONCLICK);
href = "#";