의 내가 고객 변수를 만들라고하여 내 sesssion에 넣어 보자 :동일한 이름으로 세션을 다시 넣으면 새 세션 변수가 자동으로 이전 세션 변수로 바뀝니 까?
이FacesContext.getCurrentInstance().getExternalContext()
.getSessionMap().put("currentUser", currentUser);
그런 다음, 우리가 내가이 개체에 대한 몇 가지 변경을 가정 해 봅시다. 내가 먼저 다음과 같은 방법으로 거기에 일부 내용을 변경, 세션에서 고객 개체를 얻을 : 내가 예전과 같은 이름을 가진 세션이 새로운 고객 객체를 넣어 경우,
//Do the changes, set username again etc.
Customer currentCustomer = (Customer)FacesContext.getCurrentInstance()
.getExternalContext().getSessionMap().get("currentCustomer");
다음에,이다 이전과 교체 되셨나요?
FacesContext.getCurrentInstance().getExternalContext()
.getSessionMap().put("currentCustomer", currentCustomer);
내가 말은,이 세션에 "currentCustomer"라는 변수를 넣어했다, 나는 그것을 갱신과에 다시 넣어 : 나는 그 객체를 업데이트 한 후 코드를 다음 작성하는 경우, 업데이트 된 세션 변수는, 의미 동일한 이름의 "currentCustomer"세션. 이 경우 어떻게됩니까? 그것은 자동적으로 오래된 것으로 대체됩니까? 왜냐하면 우리는 동일한 이름을 가진 두 개의 다른 객체를 세션에 넣을 수 없다고 생각하기 때문입니까? currentCustomer가 같은 개체 인스턴스이기 때문에
, 내가 먼저 ** 왜 ** 당신은'SessionScoped' @ 관리 Bean을 수동으로 세션에서 뭔가를 저장하는 대신 사용해야합니다 요청할 것입니다. 세 사람이 이미 문제에 대한 답을주고 있지만 디자인 문제가있는 것처럼 보입니다. –
귀하의 질문은 전면에 있습니다. * old * 값은 * new * 값으로 대체됩니다. – EJP