2008-10-31 3 views
1

페이지가로드 될 때 데이터베이스의 정보를 표시해야하는 동적 Facelets 페이지가 있습니다. 흐름의이 시점에서 양식 제출이 없었습니다. 내가 찾을 수있는 모든 JSF 예제는 다음 페이지에 동적 결과가있는 양식 제출 만 표시합니다.JSF & Facelets Flow

현재 데이터베이스에 요청하는 모든 작업은 양식 제출에 의해 작업이 트리거 된 후에 수행됩니다. 양식 제출이 없으면이 코드를 어디에서 실행해야합니까? 어떻게 실행합니까? 코드 스 니펫이 정말 도움이 될 것입니다! (내 강조가 추가로)

답변

0

당신은 쓰기 :

나는 우리의 데이터베이스에 만드는 모든 호출은 현재 양식 제출에 의해 트리거 된 조치 후에 일어난다. 이 코드는 어디에 있습니까? 은 양식 제출이 아니며이고 어떻게 트리거합니까? 코드 스 니펫이 실제로 나를 도와줍니다!

데이터베이스 보다 먼저 정보를 검색하여 제출 양식을 작성 하시겠습니까?.

데이터베이스를 쿼리하기 위해 Ajax 호출을하고 싶습니다. Ajax 호출은 form submisson 이벤트와 다른 이벤트에서 시작될 수 있습니다. 이것은 아마도 Faces 프레임 워크가 아닌 Javascript를 사용하게 될 것입니다.

+0

죄송합니다. 왜 그렇게 생각하는지 알 수 있습니다. 내 잘못이야. 사용자 상호 작용없이 페이지가로드 될 때이 값을 설정하려고합니다. –

+0

사용자가 양식을 가져온 후 준비된 로딩을 의미합니까? 왜 양식로드를 일으키는 이벤트가 추가 ajax 호출을 시작하지 못합니까? – Alan

1

Spring integration (here 참조)을 사용하는 경우 쉽습니다. 당신은 봄과 통합하지 않는 경우 두 가지 옵션이 있습니다

public class BackingBean implements InitializingBean 
{ 
    public void afterPropertiesSet() 
    { 
     loadInitialData(); 
    } 
} 

: 귀하의 백업 콩에서

, 단순히 같은 것을 사용 클래스 생성자에서 초기 데이터

  1. 로드;
  2. faces-config.xml에는 주입 할 속성을 설정할 수 있습니다. 속성은 설정 파일에 지정된 순서대로 설정되도록 보장됩니다. 따라서 더미 속성을 만든 다음 해당 메서드 내에서 기본 데이터를로드합니다. 즉 public void setLoaded(boolean loaded) { loadInitialData(); } 메서드를 만들고 faces-config.xml에 해당 백킹 빈의 속성으로 '로드 됨'이 설정되어 있어야합니다.

희망이 있습니다.

2

관리 Bean의 생성자 (또는 접근 자 중 하나에서 느리게 초기화)에서 초기화 작업을 수행 할 수 있어야합니다.

관련 문제