[RESOLVIDO]Duvida ao acessar classe interna dentro de uma classe

1 resposta
RafaelCassau

Bom dia pessoal, na empresa onde trabalho tem uma equipe que está desenvolvendo um projeto interno, e eles tão precisando acessar atributos de uma classe interna dentro de uma bean para seta-los em um datatable, mas da o seguinte erro:

javax.el.PropertyNotFoundException: /visao/consultarSala/consultar.xhtml @114,46 value="#{item.site}": Property 'site' not readable on type br.gov.saude.hiperdiaweb.model.dbcjava.Site

segue o fonte abaixo XHTML:

<rich:dataTable width="100%"
							rowClasses="odd,even" border="1" rowKeyVar="row"
							styleClass="ui-grid-content ui-widget-content"
							value="#{reuniaoVisao.lSitesConferencia}" var="item" id="tabelasSites"
							rendered="#{not empty reuniaoVisao.lSitesConferencia}">
							<f:facet name="header">
								<rich:columnGroup>
									<rich:column width="10%" styleClass="ui-state-default">
										<a> <strong>Informações</strong> </a>
									</rich:column>
									<rich:column width="5%" styleClass="ui-state-default">
										<a> <strong>Ações</strong> </a>
									</rich:column>
								</rich:columnGroup>
							</f:facet>
							<rich:column styleClass="sorting_1">
								<h:outputText value="#{item.site}" />
							</rich:column>
							<rich:column styleClass="sorting_1" style="text-align: center">
								<h:commandLink action="#{reuniaoVisao.deletarSiteConferencia}">
									<h:graphicImage value="/common/images/bnt_excluir.png"
										title="Remover" alt="Remover" style=" width : 26px; height : 26px;"/>
									<f:setPropertyActionListener value="#{item}" target="#{reuniaoVisao.siteConferencia}"/>
								</h:commandLink>
							</rich:column>
						</rich:dataTable>

segue abaixo a bean:

@Component("reuniaoVisao")
@Scope("session")
public class ReuniaoVisao extends BaseVisao {

//[...] demais atributos
private SiteConferencia siteConferencia; 
private List<SiteConferencia> lSitesConferencia;

// getters e setters
	public SiteConferencia getSiteConferencia() {
		if (siteConferencia == null) {
			siteConferencia = new SiteConferencia();
		}
		return siteConferencia;
	}

	public void setSiteConferencia(SiteConferencia siteConferencia) {
		this.siteConferencia = siteConferencia;
	}

	public List<SiteConferencia> getlSitesConferencia() {
		if (lSitesConferencia == null) {
			lSitesConferencia = new ArrayList<SiteConferencia>();
		}
		return lSitesConferencia;
	}

	public void setlSitesConferencia(List<SiteConferencia> lSitesConferencia) {
		this.lSitesConferencia = lSitesConferencia;
	}

      // classe interna

class SiteConferencia
	{
	      private Site site;
	      private Integer numeroIntegrantes;
	      
	      public void setSite(Site site) {
	            this.site = site;
	      }
	      
	      public Site getSite() {
	            return site;
	      }
	      
	      public void setNumeroIntegrantes(Integer numeroIntegrantes) {
	            this.numeroIntegrantes = numeroIntegrantes;
	      }
	      
	      public Integer getNumeroIntegrantes() {
	            return numeroIntegrantes;
	      }
	      
	      public String toString(){
	    	  return site.getDescricao() + "\nNúmeros de Integrantes: " + numeroIntegrantes;
	      }
	}

qualquer sugestão é bem vinda, desde já agradeço t+

1 Resposta

C

No meu caso, a minha inner class estava como private, colocando como public ela funcionou legal.

Criado 31 de outubro de 2011
Ultima resposta 22 de mar. de 2012
Respostas 1
Participantes 2