Iai pessual, blz?
to com um problemaço aki...to tentando a 3 dias arrumar um rich:listSuttle...ja varri a net tentando achar a solução, mas ta impossivel...minha ultima tentativa é buscar ajuda aki..senao vou ter q usar outra coisa....
ja fiz todos os passos recomendados em foruns, docs, tutoriais, e etc...e o mais fantastico é que eu tenho um exemplo que eu fiz funcionando certinho no mesmo server e na mesma app...realmente não entendo oq pode estar acontenceno..qualquer ajuda é mto mto beam vinda, seguinte:
tenho o meu bean que fica em um EJB:
public class Cardapio implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="car_id")
private Long id;
@Column(name="car_nome", length=100)
@NotEmpty
private String nome;
...
@Override
public boolean equals(Object obj) {
if(this == obj){
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
Cardapio other = (Cardapio) obj;
if(this.id == null){
if(other.id != null){
return false;
}
}else if(!this.id.equals(other.id)){
return false;
}
if(this.nome == null){
if(other.nome != null){
return false;
}
}else if(!this.nome.equals(other.nome)){
return false;
}
return true;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((id==null) ? 0 : id.hashCode());
result = prime * result + ((nome==null) ? 0 : nome.hashCode());
return result;
}
@Override
public String toString(){
return this.id+":"+this.nome;
}
Meu Conversor:
public class CardapioConverter implements Converter {
public Object getAsObject(FacesContext context, UIComponent component,
String value) {
if (value == null || (value.trim().length() == 0)) {
return null;
}
String [] str = value.split(":");
return new Cardapio(new Long(str[0]), str[1]);
}
public String getAsString(FacesContext context, UIComponent component,
Object value) {
if (value == null) {
return null;
}
if(value instanceof Cardapio){
Cardapio c = (Cardapio) value;
return c.getId()+":"+c.getNome();
}else{
throw new IllegalArgumentException(
"Objeto: " + value + "do tipo: " + value.getClass().getName());
}
}
}
e meu JSP
<rich:listShuttle id="idShuttleEntradas"
sourceValue="#{pratoDiaBean.cardEntrDisponiveis}"
targetValue="#{pratoDiaBean.cardEntrSelecionados}"
var="entrada"
listsHeight="230"
sourceListWidth="280" targetListWidth="280"
sourceCaptionLabel="Itens Registrados"
targetCaptionLabel="Itens Selecionados"
copyAllControlLabel="Copiar Todos"
copyControlLabel="Copiar"
removeAllControlLabel="Remover Todos"
removeControlLabel="Remover"
fastOrderControlsVisible="false"
orderControlsVisible="false"
converter="cardapioConverter">
<rich:column width="30%">
<f:facet name="header">
<h:outputText value="Id"/>
</f:facet>
<h:outputText value="#{entrada.id}">
</h:outputText>
</rich:column>
<rich:column width="70%">
<f:facet name="header" >
<h:outputText value="Nome"/>
</f:facet>
<h:outputText value="#{entrada.nome}"></h:outputText>
</rich:column>
</rich:listShuttle>
Quando eu escolho os itens da lista de itens disponiveis e jogo na lista de selecionados aparece a irritante mensagem:
"Component idFormPratosDia:idShuttleEntradas has invalid value expression 1:pao de queijo"
realmente não sei oq pode estar acontecendo, ja tentei de tudo: ja implementei de outra maneira o equals e o hashCode, ja mudei o conversor, ja reeimplementei o toString...ja fiz até um outro bean, pois testei a possibilidade de como o bean estar em um ejb estar dando algum erro, porem com o bean na msm app da o mesmo erro tb....
Alguma santa alma pode me ajudar?
vlw
