I wonder how an on demand binding feature would influence validation. Should validation also be done lazily? Otherwise one might end up with:

 public void onInit() {

   Submit submit = new Submit("submit");
   if (submit.isClicked()) {
     if (submit.isValid()) {
       // At this stage the isValid call will return true since no validation 
was done yet
     }
   }
 }

regards

bob

On 18/01/2010 11:23 PM, Malcolm Edgar wrote:
+1 I think this is a good idea, so long as the fields parent form
submit status is respected, i.e. if a page has two forms only fields
belonging to the submitted form should be able to bind their fields.

regards Malcolm Edgar

On Mon, Jan 18, 2010 at 7:34 PM, Bob Schellink<[email protected]>  wrote:
Hi all,

Thought I'd solicit some feedback on a new feature I've been pondering about
the last couple of days.

Enter On Demand Binding, the ability for a field to bind to its request
parameter when needed!

Controls are bound to incoming request parameters during the onProcess
phase. However often times we need to know a control's value during the
onInit phase, so we can perform conditional logic such as adding new fields
to a form.

Currently we can either bind a field value explicitly using the method
#bindRequestValue, or inspect the HttpRequest parameters:

public void onInit() {

  Checkbox chk = new Checkbox("chk");
  chk.bindRequestValue();  // Without On Demand Binding, we need to bind
explicitly

  if (chk.isChecked()) {
    form.add(new TextField("comment"));
  }
}

The idea with On Demand Binding is that Fields should bind to its incoming
request parameter when needed. For example:

public void onInit() {

  Checkbox chk = new Checkbox("chk");

  if (chk.isChecked()) {
    form.add(new TextField("comment"));
  }
}


What do you think? Will this feature be useful or cause unnecessary
confusion?

kind regards

bob



Reply via email to