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

时间:2011-09-18 21:32:51

标签: jsf jsf-2

我在实现自定义转换器时遇到问题......

我的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>    
...

这就是我填写我的方式:SelectOneMenu:

...
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方法实现...

感谢..

1 个答案:

答案 0 :(得分:0)

  

我总是收到一条错误消息,指出我尝试转换的值无效。

因此,您得到“验证错误:值无效”?当所选对象上的equals()方法未为任何可用选项返回true时,就会发生这种情况。换句话说,equals()的{​​{1}}方法已被破坏。相应地修复它。

另见: