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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]