UISelectOne: Value is not a valid option.
blady Sep 6, 2006 2:18 PMHi!
I have a big problem with JSF validation. I don't know why but when i submit a form i get "Value is not a valid option" error for h:selectOneMenu control. I'm using @SelectItems binder with my converter:
xhtml:
<h:selectOneMenu class="configInput" id="tAccountStatus" value="#{bankAccountControl.instance.idBankAccountStatus}" converter="#{bankAccountStatusFinder.converter}"> <f:selectItems value="#{bankAccountStatusList}"/> </h:selectOneMenu>
#{bankAccountStatusList}:
@SelectItems(valueStrategy=SelectItems.Strategy.OBJECT, labelMethod="getStatusName") private List<BankAccountStatus> bankAccountStatusList; @Factory("bankAccountStatusList") public void findBankAccountStatuses() { bankAccountStatusList = entityManager .createQuery("FROM BankAccountStatus bas ORDER BY bas.statusName") .getResultList(); }
#{bankAccountControl.instance}:
@Valid private BankAccount bankAccount; public BankAccount getInstance() { return bankAccount; }
#{bankAccountStatusFinder.converter}:
static public class BankAccountStatusConverter implements Converter, Serializable { private static final long serialVersionUID = 3820066884549543875L; List<BankAccountStatus> bankAccountStatusList; public BankAccountStatusConverter( List<BankAccountStatus> bankAccountStatusList){ this.bankAccountStatusList = bankAccountStatusList; } public String getAsString(FacesContext facesContext, UIComponent component, Object obj) { if (obj == null) return null; BankAccountStatus bankAccountStatus = (BankAccountStatus) obj; String val = String.valueOf(bankAccountStatus.getIdBankAccountStatus()); return val; } public Object getAsObject(FacesContext facesContext, UIComponent component, String str) throws ConverterException { if (str == null || str.length()==0) { return null; } long id = Long.valueOf(str).longValue(); for (BankAccountStatus bankAccountStatus : bankAccountStatusList){ if (bankAccountStatus.getIdBankAccountStatus() == id) { return bankAccountStatus; } } return null; } }
There is no any exception on console, anything. Only message from JSF that "Value is not a valid option", i don't know how to make it works.
Please help.