Star Rating primefaces [RESOLVIDO]

1 resposta
ATEN

e ai tudo bem pessoal
Estou desenvolvendo um sistema com jsf2.0 + primefaces. Tenho uma dataTable, que contém uma <p:rating /> aquelas estrelinhas para dar feedback.
Entretanto ao apertar o botao e enviar os dados eles seta o valor das estrelas, somente da ultima.

minha página

<div id="contend">
      	<h:form id="tabelaNota" >
      	<p:dataTable var="rec" value="#{recomendaBean.cestaRecomendado}" 
      				emptyMessage="NENHUM OBJETO DE APRENDIZAGEM A RECOMENDAR">
      		<f:facet name="header">OBJETOS DE APRENDIZAGEM RECOMENDADOS</f:facet>		
      		<p:column>
				<f:facet name="header">NOME</f:facet>
				<h:outputText value="#{rec.nome}" />
			</p:column>
			<p:column  resizable="true" style="max-width: 600px; min-width: 450px; overflow: hidden;" >
				<f:facet name="header">DESCRIÇÃO</f:facet>
				<h:outputText value="#{rec.descricao}" />
			</p:column>
			<p:column>
				<f:facet name="header">LOCALIZAÇÃO</f:facet>
				<h:outputLink value="#{rec.url}" target="_blank">Acessar Objeto</h:outputLink>	
			</p:column>
			
			<p:column>
				<f:facet name="header">AVALIAÇÃO</f:facet>
				<p:rating  value="#{ratingBean.voto}" />
				<p:commandButton value="Avaliar"  action="#{ratingBean.avalia(rec)}"  ajax="false" />
			</p:column>
			
		</p:dataTable>
      </h:form>
      </div>

meu bean

@ManagedBean(name="ratingBean")
@RequestScoped
public class RatingBean {
	private double voto;
		
	public RatingBean(){}
	

	public double getVoto() {
		return voto;
	}

	public void setVoto(double voto) {
		this.voto = voto;
	}
		
	public void avalia(Cesta cesta){
		System.out.println("voto Aprendiz: "+ getVoto()); //metodo apenas para testar
	
	}
}

somente a ultima linha da tabela eu consigo recuperar o valor das estrelas, nas outras linhas sempre me retorna zero

alguem sabe como conseguir o valor de uma avaliação de uma unica linha da tabela???

[]s

1 Resposta

ATEN

Problema resolvido pessoal, tive que mudar o form de lugar que funfo legal,
Assim o form so manda os dados que sao necessarios. Só uma resalva o form deve ficar dentro das tags <p:column> para funcionar. Depois de quebrar bastante a cabeça descobri

<div id="contend">  
       
        <p:dataTable var="rec" value="#{recomendaBean.cestaRecomendado}"   
                    emptyMessage="NENHUM OBJETO DE APRENDIZAGEM A RECOMENDAR">  
            <f:facet name="header">OBJETOS DE APRENDIZAGEM RECOMENDADOS</f:facet>         
            <p:column>  
                <f:facet name="header">NOME</f:facet>  
                <h:outputText value="#{rec.nome}" />  
            </p:column>  
            <p:column  resizable="true" style="max-width: 600px; min-width: 450px; overflow: hidden;" >  
                <f:facet name="header">DESCRIÇÃO</f:facet>  
                <h:outputText value="#{rec.descricao}" />  
            </p:column>  
            <p:column>  
                <f:facet name="header">LOCALIZAÇÃO</f:facet>  
                <h:outputLink value="#{rec.url}" target="_blank">Acessar Objeto</h:outputLink>    
            </p:column>  
              
            <p:column>  
                 <h:form id="tabelaNota" >  
                <f:facet name="header">AVALIAÇÃO</f:facet>  
                <p:rating  value="#{ratingBean.voto}" />  
                <p:commandButton value="Avaliar"  action="#{ratingBean.avalia(rec)}"  ajax="false" />
            </h:form>    
            </p:column>  
              
        </p:dataTable>  
     
      </div>
Criado 22 de fevereiro de 2012
Ultima resposta 23 de fev. de 2012
Respostas 1
Participantes 1