h:SelectOneMenu中的自定义转换器错误



我有一个实现自定义转换器的问题…

我的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时,就会发生这种情况。也就是说,SuperiorAuditoriaDTOequals()法被打破了。

参见:

  • 平等合同的正确实施方式

相关内容

  • 没有找到相关文章

最新更新