cocoon-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From werner <wer...@gefi.at>
Subject Re: [CFORMS] dynamic binding
Date Mon, 23 Jan 2006 11:38:19 GMT
Thanks for your answer. I think that Bruno's suggestion (passing
parameter in form.load instead() of form.createBinding() ) is perfect
for me. 

Werner


Am Freitag, den 20.01.2006, 07:00 -0700 schrieb Jason Johnston:

> werner wrote:
> > Am Donnerstag, den 19.01.2006, 11:27 -0700 schrieb Jason Johnston:
> > 
> >>> Does anybody know a clean approach for dynamic binding. For example it
> >>> would be nice to use a JXTemplate for the binding and pass it some vars
> >>> like it works with showForm:
> >>>
> >>> form.createBinding("binding.jx", {"param1": somevalue, "param2":
> >>> somevalue});
> >>>
> >>> I know it's possible to solve this with a special pipline and call the
> >>> binding with /binding.jx/param1/param2
> >>> But that's ugly IMO.
> >>
> > 
> > Thanks for your answer Jason.
> > 
> >>
> >>Looks like somebody posted a patch for this feature:
> >>https://issues.apache.org/jira/browse/COCOON-1418
> >>
> >>In the meantime you can use request attributes or parameters as a
> >>transport for your data.
> >>
> > 
> > That's how I'm doing it right now. But in some cases that is not enough. 
> > Especially when you want to pass more than 3 parameters to the binding.
> 
> You should be able to pass an arbitrary number of attributes.  I was 
> thinking something like:
> 
> cocoon.request.setAttribute("param1", "value1");
> cocoon.request.setAttribute("param2", "value2");
> //...ad nauseum
> form.createBinding("cocoon://binding.jx");
> 
> ...then in your jx template:
> 
> <jx:set var="param1" value="${cocoon.request.getAttribute('param1')}" />
> <jx:set var="param2" value="${cocoon.request.getAttribute('param2')}" />
> etc...
> 
> This is untested but seems to me like it should work.
> 
> If you didn't want to pollute the request object with so many attributes 
> you might be able to use a single request attribute with a JS object as 
> its value: c.r.setAttribute("data", {param1:"value1", param2:"value2"}); 
> you'd have to figure out how to traverse the JS object within the 
> template... I think JXPath expressions could do so.
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
> For additional commands, e-mail: users-help@cocoon.apache.org
> 



Mime
View raw message