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.