On 15/02/2010 09:10 AM, Finn Bock wrote:
Another question.

1) How do I pass request parameters into the ajax call (like a
database id param) and will the parameter be bound to the @Bindable.


I can currently see two ways to pass parameters.

1. Set attributes on the Control and use JavaScript to grab these parameters at runtime. For example a link control exposes parameters that are rendered as part of the href attribute. The Javascript can grab these parameters and pass them back to the server.

The following attributes can be checked: src, href, action.

2. The Behavior object can expose a map of parameters for adhoc parameters. The parameter map can be rendered in the behavior template:

Page.java

  behavior.addParameter("id", student.getId());

template.js:
  $.ajax( ..., $parameters + '&' + $controlParams, ...);


That means that the java API that I use in my application depends on
the javascript framework? If that is the case: yuck.


I suppose if there are enough compatibility between the different frameworks then a simple common API can be exposed. For example Partial.replace could map to element.innerHTML as an example.

A common API is something to keep in mind, but I don't really know what that API would look like. Of course if anybody wants to design such an API that would be great.

In the meantime we could keep the Partial API lean and refactor it later as the implementation takes shape. For example the JQuery Taconite implementation has a fair bit of methods which are supported by jQuery:

http://clickclick.googlecode.com/svn/trunk/site/javadoc/jquery-api/net/sf/clickclick/jquery/Taconite.html#APPEND

When we have a Prototype implementation we could move some of those methods to Partial if it is supported by both frameworks.

Yes, when taconite is used, the target control is named together with
the new content and that is IMO as it should be. I just think that a
simple replace should be part of the Partial interface and not depend
on my choice of JQuery as the framework.


Yep, see my comment above.


How would the choice of framework version be controlled? or put
another way how could I made AjaxBehavior use the same version of
JQuery that the rest of my application uses?


Good question. We could expose some static methods or a property file to specify the jQuery version. However changing the jQuery version might break plugin dependencies, so Behaviors should clearly document the minimum jQuery version supported. This is what most jQuery plugins do as well.

kind regards

bob

Reply via email to