I figured out the multiple field calls. I need to build back up to include the scroller again and see what's happening there now. I'm having a problem because rendered includes the component in the heirachy even though it's invalid. Let me see if I can fix it up with some <c:if>'s.
-- 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 13:05:07 -0400 Subject: Re: myfaces has no respect for my forms boundaries > Hi Rob, > > I'm not sure what's happening so I'm guessing. > > Its interesting that the set method is being called 3 times. I don't recall > why but I was getting a set method called twice before (but with the correct > value both times). Is it possible that more than one component is bound to > the > searchBean.searchValue property? > > I don't follow what a 'scrollerLink' is. > > HTH, > > -bd- > > On Monday, April 25, 2005, at 12:45PM, Rob Decker <[EMAIL PROTECTED]> wrote: > > >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 -------

