selectOneMenu problem
Hello together!
I have selectOneMenu. It worked great, but know I added a value if nothing is selected ("Unknown") and it doesn't work anymore.
My selectOneMenu looks like:
<h:selectOneMenu id="selectOneBloodGroup" value="#{person.bloodGroup}">
<f:selectItems value="#{person.bloodGroupArray}"/>
</h:selectOneMenu>
My bean (getter and setter):
public void setBloodGroup(String bloodGroupItem)
{
FacesContext context = FacesContext.getCurrentInstance();
Application application = context.getApplication();
Message message = (Message)application.getVariableResolver().resolveVariable(context, "message");
if(bloodGroupItem==null||bloodGroupItem.equals("")||bloodGroupItem.equals(message.getDropDownBloodGroupNoValue()))
this.bloodGroup="-1";
else this.bloodGroup=bloodGroupItem;
}
public String getBloodGroup()
{
if(this.bloodGroup==null || this.bloodGroup.equals("")||this.bloodGroup.equals("-1"))
{
FacesContext context = FacesContext.getCurrentInstance();
Application application = context.getApplication();
Message message = (Message)application.getVariableResolver().resolveVariable(context, "message");
return message.getDropDownBloodGroupNoValue();
}
else return bloodGroup;
}
And the error I get is:
java.lang.IllegalArgumentException
at javax.faces.component.SelectItemsIterator.next(SelectItemsIterator.java:149)
at javax.faces.component.UISelectOne.matchValue(UISelectOne.java:141)
at javax.faces.component.UISelectOne.validateValue(UISelectOne.java:114)
at javax.faces.component.UIInput.validate(UIInput.java:645)
at javax.faces.component.UIInput.executeValidate(UIInput.java:849)
at javax.faces.component.UIInput.processValidators(UIInput.java:412)
at javax.faces.component.UIForm.processValidators(UIForm.java:170)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:912)
at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:342)
at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:78)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.myfaces.component.html.util.ExtensionsFilter.doFilter(ExtensionsFilter.java:122)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)

