2014-01-21 1 views

답변

3

<f:event type="preRenderView">는 본질적으로이 구조에 해킹/해결 방법입니다. 그것의 이름은 실제로 입니다.은 유형 요청 (다시 게시 여부)과 유효성 검사 결과 (실패 또는하지 않음)에 관계없이 렌더링 응답 단계 전에 호출됩니다. 세부 사항이 관련 질문에 정교에서 이것은 또한 :

public void init() { 
    FacesContext facesContext = FacesContext.getCurrentInstance(); 
    if (!facesContext.isPostback() && !facesContext.isValidationFailed()) { 
     // ... 
    } 
} 

// ... 대신이 원하는 로직을 넣어 : What can <f:metadata>, <f:viewParam> and <f:viewAction> be used for?이 다음 추가로 도움이 조각이 포함되어 있습니다.

JSF 2.2에서 표준 용액은 <f:viewAction>의 향미로 제공되며 위의 관련 질문에서도 설명되어 있습니다.

1

가 나는 코드를보고하지 않은,하지만보기에서 아무것도 전에 docspreRenderView 시작부터가 구성된다. 따라서 응용 프로그램은 유효성을 검사 할 뷰 매개 변수를 알지 못합니다.

당신은 아마 이벤트 방법에 필수 인수를 확인하기 위해 필요 또는 사용 JSF-2.2의 당신이 실제로 원하는 것으로 보인다 f:viewAction 새. 추가/이미 Omnifaces를 사용하는 경우

<f:viewParam>의 할당 한 후 실행하여 InvokeActionEventListener, 거기 :

<f:event listener="#{bean.myListener()}" type="postInvokeAction" />