나는 어떤 범위를 사용해야하는지 혼란 스럽습니다.JSF 2 : 어떤 범위를 사용해야합니까?
여기에는 페이지 탐색과 같은 4 레벨의 페이지로 구성된 모듈이 있습니다. 자세한 내용은 해당 헤더 페이지 하위 세부 정보 페이지의 페이지 세부 정보를 참조하십시오. 나는 각 페이지가 자신의 managedbean을 가질 것이라고 생각했다.
레벨 4 (하위 세부 정보 페이지) 인 가장 깊은 레벨은 외부 레벨에서 다른 모든 관리 빈의 상태에 액세스 할 수 있습니다. 레벨 3 (세부 사항 페이지)은 레벨 2 managedbean의 상태 (헤더 페이지) 및 레벨 1 managedbean의 상태 (찾아보기)에 액세스 할 수 있습니다. 깊은 수준 페이지가 외부 수준에서 다른 상태에 액세스해야하기 때문에
외부 ManagedBean은의 습관은, 깊은 ManagedBean은의 상태하지 않을 것이다 요청 범위를 사용
액세스 할 수 있습니다.
세션 범위를 사용하면 사용자가 관련이없는 다른 프로그램 모듈로 전환 할 때 메모리가 소모되고 사용되지 않는 빈은 세션 동안 메모리에 남아있게됩니다. 그리고 또 다른 탭에서 이러한 페이지 체인을 열 수 없습니다.
마법사 스타일 페이지 나 퀴즈 페이지처럼 명확한 begin() 및 end()가 없기 때문에 대화 범위를 사용하는 것이 혼란 스럽습니다. 사용자는이 페이지를 사용하여 n을 뒤로 전환하고 모든 페이지에서 작업을 수행 할 수 있습니다.
뷰 범위를 사용하는 것이 가능하지만 한 페이지에서 다른 페이지로 전달되는 매개 변수를 사용해야합니다. 더 깊은 레벨 빈은 외부 빈에 액세스 할 수 없지만 이전 페이지에서 문자열 매개 변수를 수신 할 수 있습니다. 이전의 관리 빈에서 수행되었을 수있는 데이터베이스의 많은 정보를 다시 쿼리해야 할 수도 있기 때문에 좀보기가 어렵습니다.
내가 잘못 생각하고 있습니까?
의견을 말하십시오. JSF 2의 새로운 플래시 범위는 당신을 도울 수
는알버트 캄
매개 변수를 사용하면 HTTP 요청 매개 변수에 대해 이야기하고 있습니까? – BalusC
하나의 뷰 스코프에서 다른 뷰 스코프로 뷰 매개 변수를 전달하는 것은 소스 페이지의 h : button 및 중첩 된 f : param과 대상 페이지의 중첩 된 f : viewParam이있는 f : 메타 데이터로 이루어진 것입니다. 나 자신은 확실하지 않지만, 뷰 범위에서 한 페이지에서 다른 페이지로 매개 변수를 전달할 수 있다고 생각할 수있는 것만 있습니다. – bertie