I also encounter a problem like this :i request the page,shou correct,when i submit the page,rase an error.
jsf page: <h:selectManyListbox id="teams" value="#{UserForm.userTeamIds}" > <f:selectItems value="#{UserForm.userTeamMap}"/> </h:selectManyListbox> backing bean : public class UserForm { private UserService userService; private User user; ....... public List<String> getUserTeamIds(){ log.debug("getUserTeamIds go here.."); List<String> li=new java.util.ArrayList<String>(); if(user!=null){ Set<Team> teams=user.getTeams(); for (Iterator<Team> itr=teams.iterator();itr.hasNext();){ Team r=itr.next(); li.add(r.getTeamId().toString()); } } return li; } /** * for select many * @return */ public Map<String,String> getUserTeamMap(){ log.debug("getUserTeamMap here :"); java.util.Map<String,String> m=new java.util.LinkedHashMap<String, String>(); if(user!=null){ Set<Team> teams=user.getTeams(); for (Iterator<Team> itr=teams.iterator();itr.hasNext();){ Team t=itr.next(); m.put(t.getTeamName(),t.getTeamId().toString()); } } return m; } ............ } run in en error : ------------------------------------------------- javax.servlet.ServletException javax.faces.webapp.FacesServlet.service(FacesServlet.java:256) org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75) org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147) root cause java.util.NoSuchElementException javax.faces.component.SelectItemsIterator.next(SelectItemsIterator.java:117) javax.faces.component.SelectItemsIterator.next(SelectItemsIterator.java:164) javax.faces.component.SelectItemsIterator.next(SelectItemsIterator.java:49) javax.faces.component.UISelectMany.matchValue(UISelectMany.java:485) javax.faces.component.UISelectMany.validateValue(UISelectMany.java:454) javax.faces.component.UIInput.validate(UIInput.java:867) javax.faces.component.UIInput.executeValidate(UIInput.java:1065) javax.faces.component.UIInput.processValidators(UIInput.java:666) javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1030) javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1030) javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1030) javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1030) javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1030) javax.faces.component.UIForm.processValidators(UIForm.java:229) javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1030) javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:662) com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:100) com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251) com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117) javax.faces.webapp.FacesServlet.service(FacesServlet.java:244) org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75) org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147) ------------------------------------------------- i debug in it ,when i post the page,the page invoke the UserForm.getUserTeamMap() method,but return a empety map,then the server validate the selectmany's available value and selectedItems,then mismath.and throw a exception......is this reson???? who can tell me . Damien GUERIN wrote: > > Hi everyone, > > i've a problem with the UISaveState component... I've a JSF page which > contains a form with many inputs. > > <h:form id="myForm"> > <t:saveState id="save" value="#{mainBean}" /> > <h:selectOneMenu id="sessionLabel" > value="#{mainBean.param1}" > immediate="true" onchange="submit()" > valueChangeListener="#{mainBean.param1SelectionChangedHandler}"> > <f:selectItems value="#{mainBean.param1List}" /> > </h:selectOneMenu> > <h:inputText id="param1" value="#{mainBean.param2}" /> > <h:commandButton action="#{mainBean.doValidate}" > value="OK" /> > </h:form> > > mainBean is a bean which contains : > - param1 attribute ; > - param2 attribute ; > - secondBean : bean to fill param2 in function of param1 selection. > > So, my problem : > when the param1 value changes, the param2 don't change even if the param2 > value seems to be calculated and assigned correctly in the mainBean (the > display don't work, saveState, restoreState problem??). > If the secondBean is declared transient, when the param1 value changes, > the param2 value changes too and it's ok but in this case, there is a > problem in the form submission. The value of param2 is always the > calculated value in param1SelectionChangedHandler even if user change the > value directly in the form (the setter of param2 doen't seem to be > used)... > > Thanks a lot. > > > -- View this message in context: http://www.nabble.com/Tomahawk-and-SaveState-tf4193716.html#a11946698 Sent from the MyFaces - Users mailing list archive at Nabble.com.