我在实现自定义转换器时遇到问题......
我的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方法实现...
感谢..
答案 0 :(得分:0)
我总是收到一条错误消息,指出我尝试转换的值无效。
因此,您得到“验证错误:值无效”?当所选对象上的equals()
方法未为任何可用选项返回true
时,就会发生这种情况。换句话说,equals()
的{{1}}方法已被破坏。相应地修复它。