먼저 내 영어로 유감스럽게 생각합니다. 나는 여러 가지 독일어 포럼에 내 질문을 넣었지만 답변을 얻지 못했습니다 .-(어쩌면 당신이 나를 도울 수 있습니다.JSF 범위 문제
나는 JSF 2.0에서 작업합니다. 저장 - 그것은 문제가되지 않습니다
내 문제는 이것이다 :.. 내가 2 사용자 시스템에 한 로그를 사용 예 : 한 ->은 메세지를 지정하지 않고 백엔드 서버로 전송됩니다 -> 메시지가 사용자 정보와 함께 수신됩니다 - > 사용자 ID가 1로 설정됩니다. 사용자 2가 시스템에 로그인합니다. -> -> 사용자 ID는 2로 설정됩니다. 그러나 사용자 1의 ID도 1로 설정됩니다. 즉, 두 사용자가 공유 함을 의미합니다 내 사용자의 한 인스턴스 수업? 각 사용자가 자신의 정보 만 저장된 java 클래스의 인스턴스를 가져온 것으로 생각했습니다.
<h:body>
<f:view>
<h:inputText id="name" value="#{user.name}" />
<h:inputSecret id="passwort" value="#{user.password}" />
....
<h:commandButton id="login" action="#{communicator.validate}" />
당신은 사용자가 입력하고 커뮤니케이터는 백엔드에 메시지를 전송하고이를 수신 passwort
login.xhtml : 여기
는 비트 코드이다.Communicator.java
@ManagedBean(name = "communicator")
@SessionScoped
public class Communicator implements EventReceiver {
@ManagedProperty(value = "#{user}")
private User user;
private BackendEvent backendEvent;
validate();
login();
public void setUser(User user) {
this.user = user;
}
public User getUser() {
return this.user;
}
이제 백엔드에서 메시지가 모든 사용자 정보가 포함받을 것이다 :
private void handleLoginTell(LoginTell loginTell) {
logger.addToLog("handle LoginTell");
user.setSessionId(loginTell.getSessionId());
user.setName(loginTell.getLogin());
user.setLogged(true);
}
사용자 클래스는 게터/세터 방법과 그냥 간단한 클래스입니다 세 개의 필드 : username과 password 그리고 sessionid.
두 명의 사용자가 내 사이트를 방문하면 각 사용자마다 내 세션 복제 빈의 새 인스턴스가 생성 될 것입니다. 하지만 .. 여기 내 사용자는 단지 하나의 빈을 공유하는 것 같습니다. 하지만 왜? 내 잘못이 어디 있는지 설명해 주시겠습니까?
감사 조니