Update of /var/cvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib
In directory james.mmbase.org:/tmp/cvs-serv6927

Modified Files:
        ParamHandler.java ParamTag.java 
Log Message:
Made it possible for ParamHandler tags, to accept params from inside a 
sub-request (like a mm:include or a tagfile). At the moment supported by only 
mm:link/mm:url, so that you can more easily make your own 'link' tags using 
tag-files


See also: 
http://cvs.mmbase.org/viewcvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib


Index: ParamHandler.java
===================================================================
RCS file: 
/var/cvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/ParamHandler.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- ParamHandler.java   14 Jul 2007 09:26:49 -0000      1.4
+++ ParamHandler.java   29 Aug 2008 12:40:29 -0000      1.5
@@ -10,16 +10,27 @@
 package org.mmbase.bridge.jsp.taglib;
 
 import javax.servlet.jsp.JspTagException;
+import javax.servlet.jsp.PageContext;
 /**
- * ParamHandlers can have the <mm:param> tag as subtag
+ * ParamHandlers can have the <mm:param> ([EMAIL PROTECTED] ParamTag}) 
tag as subtag.
  *
  * @author Michiel Meeuwissen
  * @since  MMBase-1.7
  * @see    org.mmbase.bridge.jsp.taglib.pageflow.UrlTag
- * @version $Id: ParamHandler.java,v 1.4 2007/07/14 09:26:49 michiel Exp $
+ * @version $Id: ParamHandler.java,v 1.5 2008/08/29 12:40:29 michiel Exp $
  */
 
 public interface ParamHandler {
+
+    /**
+     * @since MMBase-1.9
+     */
+    public static final String KEY = "org.mmbase.paramhandler";
+    /**
+     * @since MMBase-1.9
+     */
+    public static final int SCOPE = PageContext.REQUEST_SCOPE;
+
     public void addParameter(String key, Object value) throws JspTagException;
 
 }


Index: ParamTag.java
===================================================================
RCS file: 
/var/cvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/ParamTag.java,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -b -r1.18 -r1.19
--- ParamTag.java       3 Feb 2008 17:33:56 -0000       1.18
+++ ParamTag.java       29 Aug 2008 12:40:29 -0000      1.19
@@ -16,10 +16,10 @@
 import org.mmbase.util.logging.*;
 
 /**
- * Adds an extra parameter to the parent URL tag.
+ * Adds an extra parameter to the parent [EMAIL PROTECTED] ParamHandler} tag 
(e.g. an mm:link tag).
  *
  * @author Michiel Meeuwissen
- * @version $Id: ParamTag.java,v 1.18 2008/02/03 17:33:56 nklasens Exp $
+ * @version $Id: ParamTag.java,v 1.19 2008/08/29 12:40:29 michiel Exp $
  */
 
 public class ParamTag extends AbstractParamTag implements ParamHandler {
@@ -28,7 +28,14 @@
     private ParamHandler paramHandler;
 
     public int doStartTag() throws JspException {
-        paramHandler = findParentTag(ParamHandler.class, null);
+
+        paramHandler = findParentTag(ParamHandler.class, null, false);
+        if (paramHandler == null) {
+            paramHandler = (ParamHandler) 
pageContext.getAttribute(ParamHandler.KEY, ParamHandler.SCOPE);
+        }
+        if (paramHandler == null) {
+            throw new JspTagException ("ould not find parent of type 
org.mmbase.bridge.jsp.taglib.ParamHandler, not could it be found in an 
attribute " + KEY);
+        }
         return super.doStartTag();
     }
 
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to