Value is not Valid...como resolver?

1 resposta
D

Opa

Tenho problema para setar um item de um Map no objeto:

Meu Converter

public class UnidadeConverter implements Converter {

	@SuppressWarnings("deprecation")
	@Override
	public Object getAsObject(FacesContext context, UIComponent ui, String str) {
		Origem origem = (Origem)context.getApplication().getVariableResolver().resolveVariable(context, "origem");
		UnidadeBean bean= null;
		bean = origem.getUnidadeSelectList(str);
	
		
		if( bean == null ) {
            FacesMessage message = new FacesMessage( FacesMessage.SEVERITY_ERROR,
                "Unidade Desconhecida", "Unidade Desconhecida" );
            throw new ConverterException( message );
        }
		return bean;
	}

	@Override
	public String getAsString(FacesContext context, UIComponent ui, Object object) {
		return ((UnidadeBean)object).getNome();
	}
	
}

ManagedBean

public UnidadeBean getUnidadeBean() {
		return unidadeBean;
	}

	public void setUnidadeBean(UnidadeBean unidadeBean) {
		this.unidadeBean = unidadeBean;
	}

public Map<String, UnidadeBean> getUnidades() {
		UnidadeDAO dao = new UnidadeDAO(UnidadeBean.class);
		List<UnidadeBean> resultado = dao.findAll();
		for(UnidadeBean unidade : resultado){
			unidades.put(unidade.getNome(), unidade);
		}
		return unidades;
	}

Minha JSP

<h:selectOneListbox value="#{origem.unidadeBean}" size="0" converter="unidadeConverter">
							<f:selectItems value="#{origem.unidades}" />
						</h:selectOneListbox>

Alguém sabe como resolver isso?

[]'s

1 Resposta

D

Consegui resolver…só implementei o equals e o hashCode e deu certo, mas eu queria saber como que é passado o Objeto para esses métodos…em ql momento o JSF passa isso pq eu tava com um nullpointer e por nao entender mto bem, fiz um if !-null no atributo do meu bean…

Alguém pode me explicar isso?

public boolean equals(Object obj) {
        if( !( obj instanceof UnidadeBean) ) {
            return false;
        }
        if(nome == null){
        	return false;
        }
        return nome.equals( ((UnidadeBean)obj).nome );
    }
Criado 30 de julho de 2008
Ultima resposta 30 de jul. de 2008
Respostas 1
Participantes 1