我有一个实现自定义转换器的问题…
我的XHTML是:...
<span class="cien">
<h:outputLabel value="Director de Area Correspondiente:"
styleClass="negritas" />
<h:selectOneMenu value="#{ordenBO.director}" id="director-area"
converter="superiorAuditoriaConverter"
converterMessage="Error al seleccionar el Director">
<f:selectItems value="#{ordenBO.directores}"></f:selectItems>
</h:selectOneMenu>
<p:message for="director-area"></p:message>
</span>
...
这是我如何填充我的h: selectonmenu:
...
this.directores = new ArrayList<SelectItem>();
for (SuperiorAuditoriaDTO sup: daoSuperiorAuditoria.getDirectoresASM())
this.directores.add(new SelectItem(sup, sup.getProfesion() + " " +
sup.getNombre_completo()));
...
这是我的自定义转换器:
....
@FacesConverter(forClass = SuperiorAuditoriaDTO.class, value =
"superiorAuditoriaConverter")
public class SuperiorAuditoriaConverter implements Converter {
private static SuperiorAuditoriaDAO dao = new SuperiorAuditoriaDAO();
public Object getAsObject(FacesContext arg0, UIComponent arg1, String id_persona) {
SuperiorAuditoriaDTO s = null;
try {
s = dao.getSuperiorASM(Integer.parseInt(id_persona));
} catch(Exception e) {
e.printStackTrace();
}
return s;
}
public String getAsString(FacesContext arg0, UIComponent arg1, Object auditor) {
return String.valueOf(((SuperiorAuditoriaDTO) auditor).getId_persona());
}
}
谁能帮帮我??我总是得到一个错误消息说,我试图转换的值是无效的。我使用jsf 2 mojarra…我还实现了equals和hashCode方法…
谢谢. .
我总是得到一个错误消息,说我试图转换的值是无效的。
因此,您得到了"验证错误:Value not validate "?"当所选对象上的equals()
方法没有为任何可用的选择项返回true
时,就会发生这种情况。也就是说,SuperiorAuditoriaDTO
的equals()
法被打破了。
参见:
- 平等合同的正确实施方式