I removed this buffer:
<x:buffer into="#{searchParams}">
<h:inputHidden value="#{searchBean.searchType}"/>
<h:inputHidden value="#{searchBean.searchField}"/>
<h:inputHidden value="#{searchBean.searchValue}"/>
<h:inputHidden value="#{searchBean.created}"/>
<h:inputHidden value="#{searchBean.createdStartDate}">
<f:convertDateTime type="date" dateStyle="short"/>
</h:inputHidden>
<h:inputHidden value="#{searchBean.createdEndDate}">
<f:convertDateTime type="date" dateStyle="short"/>
</h:inputHidden>
<h:inputHidden value="#{searchBean.modified}"/>
<h:inputHidden value="#{searchBean.modifiedStartDate}">
<f:convertDateTime type="date" dateStyle="short"/>
</h:inputHidden>
<h:inputHidden value="#{searchBean.modifiedEndDate}">
<f:convertDateTime type="date" dateStyle="short"/>
</h:inputHidden>
<h:inputHidden value="#{searchBean.resultsPerPage}"/>
</x:buffer>
and it fixed the overwritten search params. I was using this to store the
search
parameters for the different forms. My understanding was that it made a string
that
was written to the page with say, outputText. It is not inside any of the form
tags
and is just a top level element in the page (inside view after I stripped the
page of
tiles). But apparently when I submit a form on the page it includes all these
hidden
inputs from the buffer (because in the last incarnation I never wrote the
buffer back
to the page).
So there is a bug at least in that myfaces is including form fields that are
not
inside form elements but are otherwise in the component heirarchy in all forms
on the
page.
--
Rob
@objectsource.org
---------- Original Message -----------
From: "Rob Decker" <[EMAIL PROTECTED]>
To: "MyFaces Discussion" <[email protected]>
Sent: Mon, 25 Apr 2005 12:45:07 -0400
Subject: Re: myfaces has no respect for my forms boundaries
> I got rid of the tiles/subviews and decided to try this in one page. I
> removed
> the bottom scroller for now because the id's become duplicated if I put it in
> the page twice. So now I have one page/view and the problem still persists in
> the same way.
>
> --
> Rob
>
> @objectsource.org
>
> ---------- Original Message -----------
> From: "Rob Decker" <[EMAIL PROTECTED]>
> To: "MyFaces Discussion" <[email protected]>
> Sent: Mon, 25 Apr 2005 12:21:10 -0400
> Subject: Re: myfaces has no respect for my forms boundaries
>
> > Actually it always calls the .setStart(null) method repeatedly no matter
> > the
> > scope (I haven't actually application scope and see no point in doing so).
> > I
> > just had it commented out the last run.
> >
> > --
> > Rob
> >
> > @objectsource.org
> >
> > ---------- Original Message -----------
> > From: "Rob Decker" <[EMAIL PROTECTED]>
> > To: "MyFaces Discussion" <[email protected]>
> > Sent: Mon, 25 Apr 2005 12:14:33 -0400
> > Subject: Re: myfaces has no respect for my forms boundaries
> >
> > > If my bean scope is request (which is what I prefer since I have no need
> > > to
> > > store the search in session) the same thing happens as far as the first
> > > search
> > > working fine and the second getting overwritten somehow. In addition, my
> > > scroller links don't work because the action doesn't get called on the
> > > commandLink's, so it won't search at all. If I make it session then the
> > > scroller links work and what I see in the logs is
> > >
> > > searchBean.setStart(null)
> > >
> > > repeatedly when I click on a scroller link (doesn't happen when bean is
> > > request scope).
> > >
> > > I guess it's doing that once for each form input value for start. It just
> > > reloads the page if I have the bean in request scope.
> > >
> > > --
> > > Rob
> > >
> > > @objectsource.org
> > >
> > > ---------- Original Message -----------
> > > From: Bill Dudney <[EMAIL PROTECTED]>
> > > To: MyFaces Discussion <[email protected]>
> > > Cc: MyFaces Discussion <[email protected]>
> > > Sent: Mon, 25 Apr 2005 12:05:13 -0400
> > > Subject: Re: myfaces has no respect for my forms boundaries
> > >
> > > > Hi Rob,
> > > >
> > > > What scope is the backing bean (searchBean)? If its application or
> > > > session it
> > > > could be that it works the first time because nothing is set, on the
> > > > second
> > > > search the 'simple' search stuff is set as well as other stuff. A
> > > > potential
> > > > solution is to make the bean request scope.
> > > >
> > > > HTH,
> > > >
> > > > -bd-
> > > >
> > > > On Monday, April 25, 2005, at 12:00PM, Rob Decker <[EMAIL PROTECTED]>
> > > > wrote:
> > > >
> > > > >There is some weird stuff that goes on when I do a search. I have two
> > > > >ways to
> do
> > > it, a
> > > > >quick search, which is just a link:
> > > > >
> > > > ><f:verbatim> New in last </f:verbatim>
> > > > > <h:form style="display:inline">
> > > > > <h:commandLink action="#{searchBean.search}">
> > > > > <h:outputText value="Day"/>
> > > > > <v:inputParam value="#{searchBean.searchType}"
> > > > > paramValue="QUICK"/>
> > > > > <v:inputParam value="#{searchBean.searchField}"
> > > > > paramValue="NAME"/>
> > > > > <v:inputParam value="#{searchBean.searchValue}"
> > > > > paramValue="*"/>
> > > > > <v:inputParam value="#{searchBean.created}"
> > > > > paramValue="BETWEEN"/>
> > > > > <v:inputParam value="#{searchBean.createdStartDate}"
> > > > > paramValue="#
> > > > >{searchBean.yesterday}">
> > > > > <f:convertDateTime type="date" dateStyle="short"/>
> > > > > </v:inputParam>
> > > > > <v:inputParam value="#{searchBean.createdEndDate}"
> > > > > paramValue="#
> > > > >{searchBean.currentDate}">
> > > > > <f:convertDateTime type="date"
> > > dateStyle="short"/>
> > > > > </v:inputParam>
> > > > > </h:commandLink>
> > > > > </h:form>
> > > > >
> > > > >Which works fine if the first search I do. Then I have an advanced
> > > > >search
with
> > the
> > > > >fields broken out (not shown). It's on the same page and hidden/shown
> > > > >using
> > > > >javascript. It has separate <h:form> tags around it. It works on a
> > > > >first
search
> > > too.
> > > > >Since the other code isn't shown until after the first search it may
> > > > >be part
of
> > the
> > > > >problem.
> > > > >
> > > > >If I search a second time, and change the search parameters, say first
> > > > >I
search
> > > > >for '*', which shows the results fine, then I change it to search for
> > > > >'Test*'
> > > (which
> > > > >has 3 results). This what my logs show happen in the searchBeach:
> > > > >
> > > > >First search (with // comments):
> > > > >
> > > > >searchBean.setSearchValue(*) // sets the search value to * correctly
> > > > >(NAME LIKE %) start=0 // these are a dump of the params
> > > > >searchBean.search() // this is the search action
> > > > >
> > > > >Second search:
> > > > >
> > > > >searchBean.setSearchValue(Test*) // sets search value to Test*
> > > > >correctly
> > > > >searchBean.setSearchValue(null) // sets search value to null for some
> > > > >reason
> > > > >searchBean.setSearchValue(*) // sets search value to * for some reason
> > > > >(NAME LIKE %) start=0 // dump of params
> > > > >searchBean.search() // calls the search action
> > > > >
> > > > >It seems like after loading the bean correctly for a new search it
> > > > >decides to
> > reset
> > > > >the bean and load the previous search from some cache somewhere (?).
> > > > >
> > > > >--
> > > > >Rob
> > > > >
> > > > >@objectsource.org
> > > > >
> > > > >
> > > > >---------- Original Message -----------
> > > > >From: "Rob Decker" <[EMAIL PROTECTED]>
> > > > >To: "MyFaces Discussion" <[email protected]>
> > > > >Sent: Mon, 25 Apr 2005 11:39:24 -0400
> > > > >Subject: Re: myfaces has no respect for my forms boundaries
> > > > >
> > > > >> Here's my jsp code. The code is included as a tiles definition in a
> > > > >> subview
> > > > >> before and after the dataTable that displays the search results like
> > > > >> this:
> > > > >>
> > > > >> <f:subview id="topScroller">
> > > > >> <tiles:insert name="scroller" flush="false"/>
> > > > >> </f:subview>
> > > > >>
> > > > >> The searchParams in the <h:outputText> are an <x:buffer> with
<h:inputHidden>
> > > > >> for the search params.
> > > > >>
> > > > >> scroller tile:
> > > > >>
> > > > >> <h:panelGrid columns="3" columnClasses="resultsSummary,
> > > > >> resultsScroll,
> > > > >> resultsSummary" width="100%" styleClass="resultsCount"
> > > > >> rendered="#{!empty
> > > > >> searchBean.searchResults && searchBean.searchResults.total gt 0 &&
> > > > >> (searchBean.searchType eq 'QUICK' || searchBean.searchType
> eq 'ADVANCED')}">
> > > > >> <h:outputText value="Results #{searchBean.searchResults.start} to #
> > > > >> {searchBean.searchResults.end} of
> > > > >> #{searchBean.searchResults.total}"/>
> > > > >> <x:div style="display:inline"> <h:form
style="display:inline">
> > > > >> <h:commandLink action="#{searchBean.search}" id="fplink"
> > > > >> rendered="#
> > > > >> {searchBean.searchResults.start gt
searchBean.searchResults.resultsPerPage}"
> > > > >> style="text-decoration:none"
> > > > >> onmouseover="this.style.fontWeight='bold'"
> > > > >onmouseout="this.style.fontWeight='normal'">
> > > > >> <h:outputText value=" << "/>
> > > > >> <v:inputParam value="#{searchBean.start}" paramValue="#
> > > > >> {results.firstPage}"/>
> > > > >> <h:outputText value="#{searchParams}" escape="false"/>
> > > > >> </h:commandLink>
> > > > >> </h:form>
> > > > >> <h:outputText id="fp" value=" << " rendered="#{!
> > > > >> (searchBean.searchResults.start gt
> searchBean.searchResults.resultsPerPage)}"/>
> > > > >>
> > > > >> <h:form style="display:inline">
> > > > >> <h:commandLink action="#{searchBean.search}" id="pplink"
> > > > >> rendered="#
> > > > >> {searchBean.searchResults.start gt 1}" style="text-decoration:none"
> > > > >> onmouseover="this.style.fontWeight='bold'"
> > > > >onmouseout="this.style.fontWeight='normal'">
> > > > >> <h:outputText value=" < "/>
> > > > >> <v:inputParam value="#{searchBean.start}" paramValue="#
> > > > >> {searchBean.searchResults.previousPage}"/>
> > > > >> <h:outputText value="#{searchParams}" escape="false"/>
> > > > >> </h:commandLink>
> > > > >> </h:form>
> > > > >> <h:outputText id="pp" value=" < "
> > > > >> rendered="#{!(searchBean.searchResults.start gt 1)}"/>
> > > > >>
> > > > >> <x:dataList id="bps" rendered="#{searchBean.beginning}"
> > > > >> value="#
> > > > >> {searchBean.beginningPages}" var="pstart" rowIndexVar="rowIndex">
> > > > >> <h:form style="display:inline">
> > > > >> <h:commandLink action="#{searchBean.search}"
> > > > >> rendered="#{pstart
> lt
> > > > >> searchBean.searchResults.start or pstart gt
> > > > >> searchBean.searchResults.end}"
> > > > >> style="text- decoration:none"
> > > > >> onmouseover="this.style.fontWeight='bold'"
> > > > >onmouseout="this.style.fontWeight='normal'">
> > > > >> <h:outputText value=" #{rowIndex+1} "/>
> > > > >> <v:inputParam value="#{searchBean.start}"
> > > > >> paramValue="#
> > {pstart}"/>
> > > > >> <h:outputText value="#{searchParams}"
> > > > >> escape="false"/>
> > > > >> </h:commandLink>
> > > > >> </h:form>
> > > > >> <h:outputText value=" #{rowIndex+1} "
> > > > >> rendered="#{!(pstart lt
> > > > >> searchBean.searchResults.start) and !(pstart gt
> > searchBean.searchResults.end)}"/>
> > > > >> </x:dataList>
> > > > >> <h:outputText id="bpse" value=" ... " rendered="#
> > {searchBean.beginning}"/>
> > > > >> <x:dataList id="mps" value="#{searchBean.middlePages}"
> > > > >> var="pstart"
> > > > >> rowIndexVar="rowIndex">
> > > > >> <h:form style="display:inline">
> > > > >> <h:commandLink action="#{searchBean.search}"
> > > > >> rendered="#{pstart
> lt
> > > > >> searchBean.searchResults.start or pstart gt
> > > > >> searchBean.searchResults.end}"
> > > > >> style="text- decoration:none"
> > > > >> onmouseover="this.style.fontWeight='bold'"
> > > > >onmouseout="this.style.fontWeight='normal'">
> > > > >> <h:outputText value=" #{searchBean.begin+rowIndex+1}
> > > > >> "/>
> > > > >> <v:inputParam value="#{searchBean.start}"
> > > > >> paramValue="#
> > {pstart}"/>
> > > > >> <h:outputText value="#{searchParams}"
> > > > >> escape="false"/>
> > > > >> </h:commandLink>
> > > > >> </h:form>
> > > > >> <h:outputText value=" #{searchBean.begin+rowIndex+1} "
rendered="#
> {!
> > > > >> (pstart lt searchBean.searchResults.start) and !(pstart gt
> > > > >> searchBean.searchResults.end)}"/> </x:dataList>
> > > > >> <h:outputText
> > > > >> id="epse" value=" ... " rendered="#{searchBean.ending}"/>
<x:dataList
> > > > >> id="eps" rendered="#{searchBean.ending}" value="#
> > > > >> {searchBean.endingPages}"
> > > > >> var="pstart" rowIndexVar="rowIndex" rowCountVar="rowCount">
> > > > >>
> <h:form
> > > > >> style="display:inline"> <h:commandLink
> > > > >> action="#{searchBean.search}" rendered="#{pstart lt
> > > > >> searchBean.searchResults.start or pstart gt
> > > > >> searchBean.searchResults.end}"
> > > > >> style="text- decoration:none"
> > > > >> onmouseover="this.style.fontWeight='bold'"
> > > > >onmouseout="this.style.fontWeight='normal'">
> > > > >> <h:outputText value="
> > > > >> #{searchBean.searchResults.numPages-
> > > > >> (rowCount- rowIndex)+1} "/> <v:inputParam
> > > > >> value="#{searchBean.start}" paramValue="#{pstart}"/>
> > > > >> <h:outputText value="#{searchParams}" escape="false"/>
> > > </h:commandLink>
> > > > >> </h:form>
> > > > >> <h:outputText value="
> > > > >> #{searchBean.searchResults.numPages-
> > > > >> (rowCount- rowIndex)+1} " rendered="#{!(pstart lt
> > > > >> searchBean.searchResults.start) and !(pstart gt
> > searchBean.searchResults.end)}"/>
> > > > >> </x:dataList>
> > > > >>
> > > > >> <h:form style="display:inline">
> > > > >> <h:commandLink action="#{searchBean.search}" id="nplink"
> > > > >> rendered="#
> > > > >> {searchBean.searchResults.end lt searchBean.searchResults.total}"
style="text-
> > > > >> decoration:none" onmouseover="this.style.fontWeight='bold'"
> > > > >> onmouseout="this.style.fontWeight='normal'">
> > > > >> <h:outputText value=" > "/>
> > > > >> <v:inputParam value="#{searchBean.start}" paramValue="#
> > > > >> {searchBean.searchResults.nextPage}"/>
> > > > >> <h:outputText value="#{searchParams}" escape="false"/>
> > > > >> </h:commandLink>
> > > > >> </h:form>
> > > > >> <h:outputText id="np" value=" > "
> > > > >> rendered="#{!(searchBean.searchResults.end lt
> > searchBean.searchResults.total)}"/>
> > > > >>
> > > > >> <h:form style="display:inline">
> > > > >> <h:commandLink action="#{searchBean.search}" id="lplink"
> > > > >> rendered="#
> > > > >> {searchBean.searchResults.end lt searchBean.searchResults.total-
> > > > >> searchBean.searchResults.resultsPerPage}"
> > > > >> style="text-decoration:none"
> > > > >> onmouseover="this.style.fontWeight='bold'"
> > > > >onmouseout="this.style.fontWeight='normal'">
> > > > >> <h:outputText value=" >> "/>
> > > > >> <v:inputParam value="#{searchBean.start}" paramValue="#
> > > > >> {searchBean.searchResults.lastPage}"/>
> > > > >> <h:outputText value="#{searchParams}" escape="false"/>
> > > > >> </h:commandLink>
> > > > >> </h:form>
> > > > >> <h:outputText id="lp" value=" >> "
> > > > >> rendered="#{!(searchBean.searchResults.end lt
searchBean.searchResults.total-
> > > > >> searchBean.searchResults.resultsPerPage)}"/> </x:div>
> > > > >> <h:outputText
> > > value=""/>
> > > > >> </h:panelGrid>
> > > > >>
> > > > >> --
> > > > >> Rob
> > > > >>
> > > > >> @objectsource.org
> > > > >>
> > > > >> ---------- Original Message -----------
> > > > >> From: "Rob Decker" <[EMAIL PROTECTED]>
> > > > >> To: "MyFaces Discussion" <[email protected]>
> > > > >> Sent: Mon, 25 Apr 2005 10:04:57 -0400
> > > > >> Subject: Re: myfaces has no respect for my forms boundaries
> > > > >>
> > > > >> > Ok, give me an hour so to get to it. Thanks.
> > > > >> > ----- Original Message -----
> > > > >> > From: Bill Dudney
> > > > >> > To: MyFaces Discussion
> > > > >> > Cc: MyFaces Discussion
> > > > >> > Sent: Monday, April 25, 2005 9:53 AM
> > > > >> > Subject: Re: myfaces has no respect for my forms boundaries
> > > > >> >
> > > > >> > Hi Rob,
> > > > >> >
> > > > >> > I too am using multiple forms on a single page without problems.
> > > > >> >
> > > > >> > Perhaps there is something wierd with your JSP code as Heath
> > > > >> > suggested?
> If
> > > > >> > you post some of it I'd be glad to take a look and see if anything
obvious
> > > > >> > pops out.
> > > > >> >
> > > > >> > TTFN,
> > > > >> >
> > > > >> > -bd-
> > > > >> >
> > > > >> > On Monday, April 25, 2005, at 08:58AM, Heath Borders
> > > > >> > <[EMAIL PROTECTED]> wrote:
> > > > >> >
> > > > >> > >
> > > > >> > ><<Original Attached>>
> > > > >> >
> > > > >> > --------------------------------------------------------------------------
--
> --
> > > > >> >
> > > > >> > You must have some weird JSP code, because we're using multiple
> > > > >> > forms
all
> > > > >> > over the place without any problems. MyFaces should only process
> > > > >> > the JSF
> > tree
> > > > >> > beneath a submitted form. All others will not be processed.
> > > > >> >
> > > > >> > On 4/22/05, Rob Decker <[EMAIL PROTECTED]> wrote:
> > > > >> > I read in Kito Mann's book that you can have multiple forms
> > > > >> > per jsf
> page.
> > > > >> > So I have a bunch of forms to implement my paginator. One for
> > > > >> > each
page
> > > > >> > (plus a couple others). I also have them twice (since it shows
> > > > >> > up top
> and
> > > > >> > bottom) by including a page fragment with tiles.
> > > > >> >
> > > > >> > The thing is when a form is submitted (I click a commandLink
> > > > >> > in the
> form)
> > > > >> > it seems like the inputs from all forms are collected up and
> > > > >> > set in
the
> > > > >> > backing bean, not just the form the commandLink/button is
> > > > >> > located in.
> > > > >> >
> > > > >> > I was going to use the dataScroller but it seems like it
> > > > >> > expects all
> the
> > > > >> > data to loaded in order for it to work. I'm not using hibernate
> (although
> > > > >> > oracle has row limit too). But I don't want to change my back
> > > > >> > end
code.
> > > > >> >
> > > > >> > Is there a way to get myfaces to respect my form boundaries?
> > > > >> >
> > > > >> > --
> > > > >> > Rob
> > > > >> >
> > > > >> > @objectsource.org
> > > > >> >
> > > > >> > --
> > > > >> > -Heath Borders-Wing
> > > > >> > [EMAIL PROTECTED]
> > > > >> ------- End of Original Message -------
> > > > >------- End of Original Message -------
> > > > >
> > > > >
> > > > >
> > > ------- End of Original Message -------
> > ------- End of Original Message -------
> ------- End of Original Message -------
------- End of Original Message -------