0
喜逢身体我工作的Primfaces页,我必须做出一个selectOneMenu用于至极从数据库中获得的项目,所以我试图使它这样,但我仍然有问题与转换器selectOneMenu用于转换
所以我源代码是如下因素:
selectOneMenu用于:
<p:selectOneMenu id="devises" required="true" value="#{pret.devise}" effect="fade" converter="devise">
<f:selectItem itemLabel="Select One" itemValue="" />
<f:selectItems value="#{devise.listDevise()}" var="devise" itemLabel="#{devise.nomDevise}" itemValue="#{devise}"/>
</p:selectOneMenu>
变换器代码:
@FacesConverter(value = "devise")
public class DeviseConverter implements Converter{
public static List<Devise> devises = Devise.listDevise();
public Object getAsObject(FacesContext facesContext, UIComponent component, String submittedValue) {
if (submittedValue.trim().equals("")) {
return null;
} else {
try {
int idDevise = Integer.parseInt(submittedValue);
for (Devise p : devises) {
if (p.getIdDevise()== idDevise) {
return p;
}
}
} catch(NumberFormatException exception) {
throw new ConverterException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Conversion Error", "Not a valid Devise"));
}
}
return null;
}
public String getAsString(FacesContext facesContext, UIComponent component, Object value) {
if (value == null || value.equals("")) {
return "";
} else {
return String.valueOf(((Devise) value).getIdDevise());
}
}
}
错误代码是:“图谋:验证错误:值无效”
您的bean中是否有equals()和hashCode()方法? –