dev@jsf-extensions.java.net

Re: PROPOSAL: Change behavior of render, and execute options

From: Matthew Bohm <Matthew.Bohm_at_Sun.COM>
Date: Tue, 16 Jan 2007 13:52:34 -0800

I believe the default for execute should not be the entire view but rather the value of the inputs parameter. I have observed in my Currency Trader sample app that executing over nodes whose input has not been submitted can cause problems.

I think we should make explicit in these descriptions that we are supporting the "all" and "none" keywords.

Therefore I propose the following revision. (Note I've opted for the...is it British?...comma-outside-the-quotes punctuation technique.)

inputs

    Comma separated string containing a list of client ids of input
    elements whose values are to be submitted to the server.
    If the value of this option is the string "none", no input elements
    are submitted.
    If the value of this option is the string "all" or if this option
    is not specified, the values of all input elements in the current form are
    submitted.

execute

    Comma separated string containing a list of client ids. Each client
    id in the list identifies a node in the server side View for the
    current page. For each node in the list, the execute portion of the
    request processing lifecycle will visit that node and its children
    in the same traversal order as the usual non-Ajax lifecycle.
    If the value of this option is the string "none", the execute
    portion of the lifecycle is effectively skipped.
    If the value of this option is the string "all", the entire view is traversed.
    If this option is not specified, the value of the inputs option is used.
    If neither this option nor the inputs option is specified, the entire view is traversed.

render

    Comma separated string containing a list of client ids. Each client
    id in the list identifies a node in the server side View for the
    current page. For each node in the list, the render portion of the
    request processing lifecycle will visit that node and its children
    in the same traversal order as the usual non-Ajax lifecycle.
    If the value of this option is the string "none", the render
    portion of the lifecycle is effectively skipped.
    If the value of this option is the string "all" or if this option
    is not specified, the entire view is traversed.


>>>>> On Thu, 11 Jan 2007 09:33:15 -0800, Ed Burns <ed.burns_at_sun.com> said:

EB> Hello,
EB> With the fix for issue 44 [1], I have changed the bahavior of ajaxZone.
EB> I have updated the TLDDocs [2].

The current specification for the "execute" and "render" options to
fireAjaxTrainsaction() is:

execute

    Comma separated string containing a list of client ids against which
    the execute portion of the request processing lifecycle must be
    run. This is known as a "partial traversal". If the value of the
    option is the single string "none" without the quotes, the execute
    portion of the lifecycle will be effectively skipped. If this option
    is not specified at all, the value of the render parameter is used
    as the value of the option. If that is not specified, the entire
    view is traversed during the execute portion of the request
    proecssing lifecycle.

render

    Comma separated string containing a list of client ids against which
    the render portion of the request processing lifecycle must be
    run. If not specified, the entire view is rendered. If the value of
    the option is the single string "none" without the quotes, the
    render portion of the lifecycle will be effectively skipped.

I propose we change the above specification as follows:

execute

    Comma separated string containing a list of client ids. Each client
    id in the list identifies a node in the server side View for the
    current page. For each node in the list, the execute portion of the
    request processing lifecycle will visit that node and its children
    in the same traversal order as the usual non-Ajax lifecycle. If
    this option is not specified the entire view is traversed.

execute

    Comma separated string containing a list of client ids. Each client
    id in the list identifies a node in the server side View for the
    current page. For each node in the list, the render portion of the
    request processing lifecycle will visit that node and its children
    in the same traversal order as the usual non-Ajax lifecycle. If
    this option is not specified the entire view is traversed.

-------

The main change is the removal of the "if execute is not specified, just
take on what is given for render" behavior.

ACTION:

Please respond to this proposal by next Wednesday, 17 January 2007.

Thanks,

Ed