List Shuttle - help!

6 respostas
leonardobrancalhao

E daew galera, blz ?

esse !@#$%¨&* do listshuttle nao funfa nem a pau !

vamos ao codigo.

JSP:

<rich:listShuttle sourceValue="#{obraBean.listaFase}" var="fase"
						targetValue="#{obraBean.faseSelecionada}"
						converter="FaseConverter">
						<rich:column>
							<h:outputText value="#{fase.descricao}" />
						</rich:column>
					</rich:listShuttle>

Converter

public Object getAsObject(FacesContext context, UIComponent component, String value)
			throws ConverterException {
		
		if(value != null){
			return this.getAttributesFrom(component).get(value);
		}
		
		return null;
	}

	public String getAsString(FacesContext context, UIComponent component, Object value)
			throws ConverterException {
		
		if(value != null && !"".equals(value)){
			
			Fase f = (Fase) value;
			
			this.addAttribute(component, f);
			
			Integer codigo = f.getId();
			
			if(codigo != null){
				return String.valueOf(codigo);
			}
		}
		
		return (String)value;
	}
	
	 protected void addAttribute(UIComponent component, Fase o) {  
         String key = o.getId().toString(); 
         this.getAttributesFrom(component).put(key, o);  
     }  
   
     protected Map<String, Object> getAttributesFrom(UIComponent component) {  
         return component.getAttributes();  
     }

faces-config

<converter>
		<converter-id>FaseConverter</converter-id>
		<converter-class>util.FaseConverter</converter-class>
	</converter>

ObraBean

private List<Fase> faseSelecionada = new ArrayList<Fase>();

//get e set

FaseBean

@SuppressWarnings("unused")
	private List<Fase> listaFase = new ArrayList<Fase>();

@SuppressWarnings("unchecked")
	public List<Fase> getListaFase(){

		Session session = HibernateUtil.getSession();
		
		try {
			Criteria criteria = session.createCriteria(Fase.class);
			criteria.add(Restrictions.eq("cancelado", "N"));
			return criteria.list();
		} catch (Exception e) {
		} finally{
			session.close();
		}
		
		return null;
	}

public void setListaFase(List<Fase> listaFase) {
		this.listaFase = listaFase;
	}

ele lista blz, move os objetos, mais na hora do submit:

formObra:j_id_jsp_1738702023_57: An error occurred when processing your submitted information.

P.S: tenho implementado o hasCode e o equals no bean(Fase)

alguem saberia ajdudar ?? pls !!!

abraços !

6 Respostas

leonardobrancalhao

Putz, postei em lugar errado, alguem move pra mim por gentileza !

vlw !

Hebert_Coelho

Teria como colar mais da mensagem de erro? Ou é apenas aquela ali que ele te mostra?

leonardobrancalhao

so aparece aquilo cara …

A

Esse id formObra:j_id_jsp_1738702023_57 é realmente do listshuttle?
Vc ja usou o debug no seu código?
Tente fazer o listshuttle funcionar primeiro sem o converter e depois acrescente o msm.

Grinvon

Leonardo,

No converter temos dois métodos, o getAsObject - quando selecionamos um item em nossa página e trazemos esse item em forma de entidade para o nosso bean, e o getAsString quando do bean levamos um item à tela, então o seu valor deverá ser representativo.

Não entendi o uso do métodos adicionais addAttribue e getAttributeFrom. O converter trata unicidade, e não união de elementos.

O erro tá sendo dado na hora de passar um item de um lado para outro?

leonardobrancalhao

Grinvon:
Leonardo,

No converter temos dois métodos, o getAsObject - quando selecionamos um item em nossa página e trazemos esse item em forma de entidade para o nosso bean, e o getAsString quando do bean levamos um item à tela, então o seu valor deverá ser representativo.

Não entendi o uso do métodos adicionais addAttribue e getAttributeFrom. O converter trata unicidade, e não união de elementos.

O erro tá sendo dado na hora de passar um item de um lado para outro?

nao, o erro esta acontecendo quando submete o formulario, teria um converter ai de exemplo pra eu tentar implementar ?

Criado 4 de agosto de 2010
Ultima resposta 5 de ago. de 2010
Respostas 6
Participantes 4