You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Torsten Krah (JIRA)" <de...@myfaces.apache.org> on 2006/07/20 18:10:14 UTC

[jira] Resolved: (MYFACES-1365) h:selectOneMenu - Phase processing broken for the first selectOneMenu when using 2 of them.

     [ http://issues.apache.org/jira/browse/MYFACES-1365?page=all ]

Torsten Krah resolved MYFACES-1365.
-----------------------------------

    Fix Version/s: 1.1.3
       Resolution: Invalid

Got some interesting news - found facestraces project and attatched it.

For the first event at test2.faces, the validation phase fails and update + application phase arent executed, which is right if validation phase is failing.
The validation failed - because, i don't know - thats what i have to find out, but so this bug is invalid, thx for help, i'll report why it fails for the first time.

kind regards

Torsten

> h:selectOneMenu - Phase processing broken for the first selectOneMenu when using 2 of them.
> -------------------------------------------------------------------------------------------
>
>                 Key: MYFACES-1365
>                 URL: http://issues.apache.org/jira/browse/MYFACES-1365
>             Project: MyFaces Core
>          Issue Type: Bug
>    Affects Versions: 1.1.3
>         Environment: tomcat 5.5.17, java 1.5
>            Reporter: Torsten Krah
>             Fix For: 1.1.3
>
>
> Using two selectOneMenu on one page results in a broken phase processing.
> example:
> Works:
> <html>
> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
> <%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>
> <%@include file="../inc/head.jsp"%>
> <body>
> <f:view>
>         <h:form>
>                 <f:loadBundle basename="my.examples.ressources.messages" var="msgs" />
>                 <h:selectOneMenu id="oneoption" value="#{tableData.rows}"
>                         onchange="submit()" valueChangeListener="#{tableData.rowsChanged}"
>                         immediate="true">
>                         <f:selectItem itemValue="5" itemLabel="5" />
>                         <f:selectItem itemValue="10" itemLabel="10" />
>                         <f:selectItem itemValue="15" itemLabel="15" />
>                         <f:selectItem itemValue="20" itemLabel="20" />
>                 </h:selectOneMenu>
>         </h:form>
> </f:view>
> <%@include file="../inc/page_footer.jsp"%>
> </body>
> </html>
> doesnt work:
> <html>
> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
> <%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>
> <%@include file="../inc/head.jsp"%>
> <body>
> <f:view>
>         <h:form>
>                 <f:loadBundle basename="my.examples.ressources.messages" var="msgs" />
>                 <h:selectOneMenu id="oneoption" value="#{tableData.rows}"
>                         onchange="submit()" valueChangeListener="#{tableData.rowsChanged}"
>                         immediate="true">
>                         <f:selectItem itemValue="5" itemLabel="5" />
>                         <f:selectItem itemValue="10" itemLabel="10" />
>                         <f:selectItem itemValue="15" itemLabel="15" />
>                         <f:selectItem itemValue="20" itemLabel="20" />
>                 </h:selectOneMenu>
>                 <h:selectOneMenu value="#{tableData.country}" onchange="submit()">
>                         <f:valueChangeListener
>                                 type="my.examples.sortabletable.CountryListener" />
>                         <f:selectItems value="#{tableData.countryNames}" />
>                 </h:selectOneMenu>
>         </h:form>
> </f:view>
> <%@include file="../inc/page_footer.jsp"%>
> </body>
> </html>
> Using the first one, the event gets fired and looking at the phase listener, all 6 phases are processed.
> Using the second example with both menus and firing an event on the first menu, application invoke and model update phase aren't executed.
> The second menu works fine
> Only happens after the bean is new - using it on a already created session bean, works. Only after the first invoking of the view this happens.
> I don't see any cause why the first event should not process phase 4 and 5 ( like it does when only one menu is used ), so imho it's a bug.
> kind regards
> Torsten

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Re: [jira] Resolved: (MYFACES-1365) h:selectOneMenu - Phase processing broken for the first selectOneMenu when using 2 of them.

Posted by Torsten Krah <tk...@fachschaft.imn.htwk-leipzig.de>.
I think you're right. I'll search the code if an error message should be
displayed for that reason or not. If there is no one, maybe there should
be made one, we'll see.

thx for you're help.

kind regards

Am Freitag, den 21.07.2006, 11:19 -0400 schrieb Mike Kienenberger:
> Moving to the myfaces-user list....
> 
> Well, my guess/speculation is that selectoneMenu must have a valid
> selection.   Null isn't a valid selection so it's throwing a
> validation (or conversion) error.
> 
> I don't know why there's no error message being displayed, though.
> 
> 
> On 7/21/06, Torsten Krah <tk...@fachschaft.imn.htwk-leipzig.de> wrote:
> > Insert the lines at the top of the page - didn't help - shows nothing.
> > But perhaps i found something - although i don't know if it's the real
> > cause, but if i fix it it works:
> >
> > My second selectOneMenu is:
> >
> >                 <h:selectOneMenu value="#{tableData.country}">
> >                         <f:valueChangeListener
> >                                 type="my.examples.sortabletable.CountryListener"/>
> >                         <f:selectItems value="#{tableData.countryNames}" />
> >                 </h:selectOneMenu>
> >
> > #{tableData.country } is declared as follows:
> >
> >     private String country;
> >
> > At the first instantiation of the bean - i did not set this value to
> > something.
> >
> > If i add this to the constructor ( DE and US are static strings with the
> > appropiate locale definition ):
> >
> >
> >         FacesContext context = FacesContext.getCurrentInstance();
> >         Locale locale = context.getViewRoot().getLocale();
> >         if(locale.getLanguage().equals(DE)) {
> >             country = DE;
> >         } else {
> >             country = US;
> >         }
> >
> > all works fine. If the value is not set at instantiation - validation
> > fails, if i set this value in the constructor, it works.
> >
> > Can you bring some light to me? thx.
> >
> > kind regards
> >
> > Torsten
> >
> >
> >
> > Am Donnerstag, den 20.07.2006, 15:51 -0400 schrieb Mike Kienenberger:
> > > On 7/20/06, Torsten Krah (JIRA) <de...@myfaces.apache.org> wrote:
> > > > Got some interesting news - found facestraces project and attatched it.
> > > >
> > > > For the first event at test2.faces, the validation phase fails and update + application phase arent executed, which is right if validation phase is failing.
> > > > The validation failed - because, i don't know - thats what i have to find out, but so this bug is invalid, thx for help, i'll report why it fails for the first time.
> > >
> > > Glad you're making progress.
> > >
> > > Try sticking these at the top of your page:
> > >
> > >                       <t:messages globalOnly="true" showDetail="true" />
> > >                       <t:messages globalOnly="false" showDetail="true" />
> > >
> > > (The first one might be redundent.)
> >
> >


Re: [jira] Resolved: (MYFACES-1365) h:selectOneMenu - Phase processing broken for the first selectOneMenu when using 2 of them.

Posted by Mike Kienenberger <mk...@gmail.com>.
Moving to the myfaces-user list....

Well, my guess/speculation is that selectoneMenu must have a valid
selection.   Null isn't a valid selection so it's throwing a
validation (or conversion) error.

I don't know why there's no error message being displayed, though.


On 7/21/06, Torsten Krah <tk...@fachschaft.imn.htwk-leipzig.de> wrote:
> Insert the lines at the top of the page - didn't help - shows nothing.
> But perhaps i found something - although i don't know if it's the real
> cause, but if i fix it it works:
>
> My second selectOneMenu is:
>
>                 <h:selectOneMenu value="#{tableData.country}">
>                         <f:valueChangeListener
>                                 type="my.examples.sortabletable.CountryListener"/>
>                         <f:selectItems value="#{tableData.countryNames}" />
>                 </h:selectOneMenu>
>
> #{tableData.country } is declared as follows:
>
>     private String country;
>
> At the first instantiation of the bean - i did not set this value to
> something.
>
> If i add this to the constructor ( DE and US are static strings with the
> appropiate locale definition ):
>
>
>         FacesContext context = FacesContext.getCurrentInstance();
>         Locale locale = context.getViewRoot().getLocale();
>         if(locale.getLanguage().equals(DE)) {
>             country = DE;
>         } else {
>             country = US;
>         }
>
> all works fine. If the value is not set at instantiation - validation
> fails, if i set this value in the constructor, it works.
>
> Can you bring some light to me? thx.
>
> kind regards
>
> Torsten
>
>
>
> Am Donnerstag, den 20.07.2006, 15:51 -0400 schrieb Mike Kienenberger:
> > On 7/20/06, Torsten Krah (JIRA) <de...@myfaces.apache.org> wrote:
> > > Got some interesting news - found facestraces project and attatched it.
> > >
> > > For the first event at test2.faces, the validation phase fails and update + application phase arent executed, which is right if validation phase is failing.
> > > The validation failed - because, i don't know - thats what i have to find out, but so this bug is invalid, thx for help, i'll report why it fails for the first time.
> >
> > Glad you're making progress.
> >
> > Try sticking these at the top of your page:
> >
> >                       <t:messages globalOnly="true" showDetail="true" />
> >                       <t:messages globalOnly="false" showDetail="true" />
> >
> > (The first one might be redundent.)
>
>