2012-11-30 6 views
1

작동하지 않습니다, 아파치 톰캣 로그는 말한다 :나는이 아래의 코드를 실행하면 Primefaces 데이터 테이블이

Property 'recuClientes' not found in type com.swc.rc.recu.UtilsRecu

웹 페이지가 No records found.

어떤 제안 반환?

이 호출이 원인

<p:outputPanel> 
    <h:form> 
     <p:dataTable var="rec" value="#{rc.recu}"> 
      <p:column headerText="recu"> 

       <h:outputText value="#{rec.deudor}" /> 


      </p:column> 
     </p:dataTable> 
    </h:form> 
</p:outputPanel> 

, 내가 그것을 사용할 수 있습니다 , 그것을 밤은 무엇입니까?

@ManagedBean(name = "rc") 
@SessionScoped 
public class UtilsRecu { 

    private Clientes cliente=new Clientes(); 

    private List <Procs> recu=new LinkedList<Procs>(); 



    public void recuClientes(){ 

     recu=(List<Procs>) cliente.getProcsCollection(); 

    }   

    public void setRecu(List<Procs> recu) { 

     this.recu= recu; 
    } 

    public List<Procs> getRecu() { 
     recuClientes(); 
     return recu; 
    } 


} 

감사합니다

@XmlTransient 
public Collection<Procs> getProcsCollection() { 
    return procsCollection; 
} 

public void setProcsCollection(Collection<Procs> procsCollection) { 
    this.procsCollection = procsCollection; 
} 

그리고 이것은 ManagedBean은입니다 .. ..

답변

0

지금까지 표시된 Facelets의 코드에 의해 발생한 것이 직면 해 예외입니다. 동일한 페이지의 다른 곳에서 #{rc.recuClientes}의 잘못된 사용으로 인해 발생했습니다. 아마도 당신은 템플릿 글에 평범한 바닐라를 넣었을 것입니다.

#{rc.recuClientes} 

그리고로드시 메소드를 실행하기를 바랄 것입니다. 그러나 그것은 그런 식으로 작동하지 않습니다. 이것은 값 표현식으로 해석 될 것이므로 getter 메소드 getRecuClientes()을 찾고 결과물에 출력 할 수있는 것을 반환합니다. 그러나 그러한 getter 메소드가 존재하지 않기 때문에 여러분이 직면하고있는 "속성을 찾을 수 없습니다"예외가 발생합니다.

이 메서드가 비즈니스 논리 (목록 채우기)를 수행한다는 사실을 고려하면 <h:commandButton>과 같은 일부 동작 구성 요소에 의해 호출되어야합니다.

<h:form> 
    <h:commandButton value="Submit" action="#{rc.recuClientes}" /> 
</h:form> 

또는, 당신은 그럼 그냥보기에 어디를 참조 할 필요없이 @PostConstruct와 주석, 이미 초기 GET 요청 중에 호출하려는 경우.

@PostConstruct 
public void recuClientes() { 
    recu = (List<Procs>) cliente.getProcsCollection(); 
}   

이렇게하면 Bean의 생성 후에 직접 호출됩니다.

그런데 그 캐스트는 코드 냄새입니다. 잘 설계된 코드에서는이 특정 구조에 해당 캐스트가 필요하지 않습니다.

관련 문제