Update of /var/cvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/pageflow
In directory james.mmbase.org:/tmp/cvs-serv6927/pageflow
Modified Files:
UrlTag.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/pageflow
Index: UrlTag.java
===================================================================
RCS file:
/var/cvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/pageflow/UrlTag.java,v
retrieving revision 1.116
retrieving revision 1.117
diff -u -b -r1.116 -r1.117
--- UrlTag.java 11 Apr 2008 14:06:53 -0000 1.116
+++ UrlTag.java 29 Aug 2008 12:40:29 -0000 1.117
@@ -30,7 +30,7 @@
* A Tag to produce an URL with parameters. It can use 'context' parameters
easily.
*
* @author Michiel Meeuwissen
- * @version $Id: UrlTag.java,v 1.116 2008/04/11 14:06:53 michiel Exp $
+ * @version $Id: UrlTag.java,v 1.117 2008/08/29 12:40:29 michiel Exp $
*/
public class UrlTag extends CloudReferrerTag implements ParamHandler,
FrameworkParamHandler {
@@ -47,6 +47,7 @@
protected Attribute escapeAmps = Attribute.NULL;
protected Attribute absolute = Attribute.NULL;
private Attribute encode = Attribute.NULL;
+ private Attribute internal = Attribute.NULL;
protected Url url;
public void setReferids(String r) throws JspTagException {
@@ -82,6 +83,14 @@
return absolute.getString(this);
}
+
+ /**
+ * @since MMBase-1.9
+ */
+ public void setInternal(String i) throws JspTagException {
+ internal = getAttribute(i);
+ }
+
/**
* @since MMBase-1.9
*/
@@ -153,10 +162,20 @@
}
+ private Object prevParamHandler;
public int doStartTag() throws JspTagException {
helper.initTag();
- initTag(false);
+ boolean i = internal.getBoolean(this, false);
+ log.debug("internal : " +i);
+ initTag(i);
+ prevParamHandler = pageContext.getAttribute(ParamHandler.KEY,
ParamHandler.SCOPE);
+ pageContext.setAttribute(ParamHandler.KEY, new ParamHandler() {
+ // putting an object to only wrapp addParameter on the request.
+ public void addParameter(String k, Object v) throws
JspTagException {
+ UrlTag.this.addParameter(k, v);
+ }
+ }, ParamHandler.SCOPE);
return EVAL_BODY_BUFFERED;
}
@@ -205,7 +224,7 @@
*/
protected boolean doMakeRelative() {
if (makeRelative == null) {
- String setting =
pageContext.getServletContext().getInitParameter("mmbase.taglib.url.makerelative");
+ String setting =
pageContext.getServletContext().getInitParameter("mmbase.taglib.url.makereltive");
makeRelative = "true".equals(setting) ? Boolean.TRUE :
Boolean.FALSE;
}
return makeRelative.booleanValue();
@@ -256,6 +275,8 @@
if (getId() != null) {
parameters.getWrapped(true); // dereference, and calculate
}
+ pageContext.setAttribute(ParamHandler.KEY, prevParamHandler,
ParamHandler.SCOPE);
+ prevParamHandler = null;
initDoEndTag();
doAfterBodySetValue();
helper.doEndTag();
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs