2013-12-11 5 views
0

데이터베이스에서 값을 가져 와서 테이블 형식으로 표시하는 기본 데이터 테이블을 만들려고합니다. 그러나 디버깅을 시도하는 동안 관리되는 bean 함수가 호출되지 않는 것을 볼 수 있습니다. 아래의 코드를입니다ManagedBean 함수가 호출되지 않음

list.xhtml :

<h:body> 
    <h3>Expense list</h3> 


    <h:dataTable value="#{userMB.entries}" var="e" styleClass="table" 
     headerClass="table-header" rowClasses="table-odd-row,table-even-row"> 

     <h:column> 
      <f:facet name="header">Date</f:facet> 
      #{e.date} 
     </h:column>  
    </h:dataTable> 
</h:body> 

UserMB.java 나는 내가 코드 또는 facelet에 오류가 표시되지

@ManagedBean 
@SessionScoped 
public class UserMB { 
private List<Entry> entries; 
@EJB(mappedName = "entryServices") 
private EntryServices entryServices; 

public UserMB() { 

} 

@PostConstruct 
public void init() { 

    FacesContext context = FacesContext.getCurrentInstance(); 
    HttpServletRequest request = (HttpServletRequest) context 
      .getExternalContext().getRequest(); 
    HttpSession httpSession = request.getSession(false); 
    User user = (User) httpSession.getAttribute("user"); 
    entries = new ArrayList<Entry>(); 
    entries = entryServices.getEntryByUser(user); 
} 

public List<Entry> getEntries() { 
    return entries; 
} 

public void setEntries(List<Entry> entries) { 
    this.entries = entries; 
} 

public EntryServices getEntryServices() { 
    return entryServices; 
} 

public void setEntryServices(
     EntryServices entryServices) { 
    this.entryServices = entryServices; 
} 

}

+0

무엇이'userMB.Entries'입니까? –

+0

이 글은 여기에 복사했을 때 오타였습니다. 지금 질문에 수정했습니다. – coder

+0

'init()'이 호출되지 않았다면 연관된 관리 빈이 아직 구성되지 않았 음을 의미합니다. 목록이 비어 있지 않은지 확인 했습니까? – Omar

답변

1

Eclipse를 사용할 때가있다. javax.faces.ManagedBean과 javax.faces.SessionScoped가되어야하는 어노테이션에 맞는 패키지를 선택하지 않는다. 그렇지 않으면 bean은 결코 생성되지 않는다. glassfish에서는 ManagedBean에서 EJB를 사용할 때 직렬화해야합니다. 이것이 도움이되기를 바랍니다.

+0

정확합니다. 관리 빈에 대해 잘못된 가져 오기를 수행했습니다. – coder

관련 문제