두 개의 ManagedBeans (SessionHandler 및 OrderHandler)가 있습니다. 둘 다 세션 범위입니다.ManagedProperty를 사용할 수 없습니다.
SessionHandler :
@ManagedBean(name="session")
@SessionScoped
public class SessionHandler {
private Account account;
public String login() {
try {
// ... login method ...
return("bookinglist.xhtml?faces-redirect=true");
}
catch (Exception e) {
// ... exception handling ...
}
}
// ... getter & setter ...
}
OrderHandler :
<p>Welcome, #{sessions.account.name}!</p>
<ui:repeat value="#{order.bookingList}" var="item">
<!-- ... items ... --->
</ui:repeat>
:
@ManagedBean(name="order")
@SessionScoped
public class OrderHandler {
@ManagedProperty(value="#{session.account}")
Account account; // getter and setter
public OrderHandler() {
this.createList();
}
private void createList() {
// method creates an ArrayList of bookings
// it uses this.account.getId() for a SQL statement
}
}
bookinglist.xhtml에서 나는 환영 텍스트와 내 목록을 표시 할
welcome 텍스트가 표시되지만 내 sql 문에서 accountID가 null이므로 내 목록이 비어 있습니다. AccountID = 1 (예)의 문장이 작동합니다. 나중에 예약 절차에서 accountID를 사용할 수 있습니다 (다시 선언하거나 덮어 쓰지 않고).
로그인 후 바로 등록 할 수 없다는 것이 문제라고 생각합니다.하지만 그 이유는 모르겠습니다. 누군가 나를 도울 수 있습니까?
:
현재
@PostConstruct
주석에 대한 자세한 내용을보실 수 있습니다? – Omar효과 없음 ... 그리고 다른 메소드를 위해서는 SessionHopler가 필요합니다. – pril