Also, here's some useful links on incoming extensions to JSF :

http://weblogs.java.net/blog/jhook/archive/2005/09/jsf_avatar_vs_m_1.html
https://jsf-extensions.dev.java.net/#documentation

On 4/7/06, Alexandre Poitras <[EMAIL PROTECTED]> wrote:
> ADF partial page rendering should do the trick in my opinion, well as
> soon as it is released.
>
> On 4/7/06, Andrew Robinson <[EMAIL PROTECTED]> wrote:
> > I am making the HTML render something like:
> >
> > <form id="myform" ...>
> >
> > <span id="aazone.JsfFormState">
> > <input type="hidden" ... />
> > <input type="hidden" ... />
> > <input type="hidden" ... />
> >
> > <script>
> > function clear_myform() {
> > ...
> > }
> > </script>
> > </span>
> > </form>
> >
> > This way AjaxAnywhere is able to replace the inner HTML of
> > "aazone.JsfFormState" on every AJAX reply.
> >
> > Right now I have to severly hack the HtmlForm to search for the input
> > and script elements written by encodeBegin and encodeEnd so that my
> > AJAX response will always send the new clear function and new hidden
> > elements.
> >
> > There is no other easier way to do this with AjaxAnywhere 1.1.0.6 and
> > I don't want to write my own AJAX JSF framework. This functionality
> > will give me the ability to render start and end span tags around the
> > HTML written by HtmlFormRenderer without having to write my own
> > renderer or do the hack I am already doing.
> >
> > -Andrew
> >
> >
> > On 4/7/06, Travis Reeder <[EMAIL PROTECTED]> wrote:
> > > What are you trying to accomplish exactly?
> > >
> > > Travis
> > >
> > >
> > > On 4/7/06, Andrew Robinson <[EMAIL PROTECTED] > wrote:
> > > > One method of implementing AJAX is to re-render the page and only send
> > > > pieces down to the browser. This is the way AjaxAnywhere works.
> > > > However, it is not easy to get this to work in MyFaces with HTML
> > > > forms. The issue:
> > > >
> > > > AJAX needs a way to identify HTML to replace on AJAX response. This is
> > > > usually done via id:
> > > > "document.getElementById('idFromAjaxResponse').innerHtml
> > > =
> > > > reponseData".
> > > >
> > > > However, there is no containing HTML element for the "special" form
> > > > elements. These "special" elements include:
> > > >
> > > > 1) input type="hidden" elements that are rendered for parameters,
> > > > client-side state, etc.
> > > > 2) script tag that contains the clear_[formid]() JavaScript function
> > > > that uses the above hidden input elements
> > > >
> > > > In 1.1.1, these were placed at the top and bottom of the form. In
> > > > 1.1.2/3 they are put only at the bottom, but in neither is the
> > > > capability that I would like.
> > > >
> > > > Workaround I used: Extended the HtmlFormRenderer and buffered the
> > > > output of the endcodeEnd and encodeBegin. Then I loop through the
> > > > buffer and strip out all hidden input elements and JavaScript tags. I
> > > > then add the stripped portion into a new SPAN element that is
> > > > formatted for AjaxAnywhere to work.
> > > >
> > > > How this could have been much easier:
> > > >
> > > > Add 4 new methods to HtmlFormRendererBase:
> > > > public void beforeFormElementsStart(FacesContext
> > > facesContext,
> > > > UIComponent component)
> > > >    throws IOException {}
> > > > public void afterFormElementsStart(FacesContext
> > > facesContext,
> > > > UIComponent component)
> > > >    throws IOException {}
> > > > public void beforeFormElementsEnd(FacesContext
> > > facesContext,
> > > > UIComponent component)
> > > >    throws IOException {}
> > > > public void afterFormElementsEnd(FacesContext
> > > facesContext,
> > > > UIComponent component)
> > > >    throws IOException {}
> > > >
> > > > These methods would the be called:
> > > > encodeBegin(...) {
> > > > ...render the start tag...
> > > > call before form elements start
> > > > ...render and elements into the form
> > > > call after form elements end
> > > >
> > > > ...
> > > >
> > > > encodeEnd(...) {
> > > > call before form elements end
> > > > ... render state, javascript etc. ...
> > > > call after form elements end
> > > > ... render the form end tag ...
> > > >
> > > >
> > > > Then, with projects like AjaxAnywhere, users can extend
> > > > HtmlFormRenderer and implement these methods. In these methods, we can
> > > > write tags to contain this data that can be used in the AJAX code to
> > > > update on every request.
> > > >
> > > > This would be a very simple change, would incur almost no overhead and
> > > > give complete flexibility that would be needed to AJAX authors to have
> > > > control over the special form behavior of JSF.
> > > >
> > > > I wouldn't care about the method names, in fact there could be one
> > > > method with an enum argument that specifies before/after information.
> > > >
> > > > What do you think? If it sounds good, could this be added to current
> > > > before the next release? Since it would be just empty methods, it
> > > > would not de-stabilize the current code.
> > > >
> > > > Thanks,
> > > > Andrew
> > > >
> > >
> > >
> >
>
>
> --
> Alexandre Poitras
> Québec, Canada
>


--
Alexandre Poitras
Québec, Canada

Reply via email to