2017-12-18 7 views
1

장식하지 :JSF 2.2 ViewAction는 I는 다음과 같은 정의 viewAction와 JSF 뷰가 CDI 인터셉터

<f:metadata> 
    <f:viewAction action="#{basketBean.onBasketViewPageLoad}" immediate="true"/> 
</f:metadata> 

onBasketViewPageLoad 메소드를 호출하지만이 정의 된 CDI 인터셉터 장식되지 않습니다. 콩 방법

@CalledFromJSFView 
public void onBasketViewPageLoad() throws Exception {... } 

가 호출된다 "정상"JSF 액션 청취자 등에 등록되어 있기 때문에 주석이 작동합니다.

누구나 CDI 인터셉터로 장식 된 viewAction을 얻는 방법을 알고 있습니다.

은 기록을 위해 인터셉터는 같은 정의 :

@InterceptorBinding 
@Target({METHOD, TYPE}) 
@Retention(RUNTIME) 
public @interface CalledFromJSFView{ 
... 
} 
+0

'CalledFromJSFView'는 바인딩이지만 인터셉터 자체는 아니기 때문에 인터셉터 코드의 코드를 보여주고 싶을 수도 있습니다. 또한, 다른 경우에이 인터셉터를 시도해 보셨습니까? 활성화되어 있습니까? '@ Priority' 또는'beans.xml'의 엔트리를 사용합니까? – Siliarus

답변

0

같은 문제를 가진 사람에게. 그것은 그것이 의존성에서의 불일치로 인한 것이 었습니다. 그것이 작동하지 않은 경우는 javax.faces이 com.sun.faces 업데이트되었습니다 일 때

나는 (Gradle을 종속성을)

compile 'javax.faces:javax.faces-api:2.2'; 
    compile (group: 'com.sun.faces', name: 'jsf-impl', version: '2.2.0') 
compile group: 'org.jboss.weld.servlet', name: 'weld-servlet', version: '2.4.6.Final' 

사용. 이처럼

:

compile 'com.sun.faces:jsf-api:2.2.15' 
compile (group: 'com.sun.faces', name: 'jsf-impl', version: '2.2.15' 
compile group: 'org.jboss.weld.servlet', name: 'weld-servlet', version: '2.4.6.Final' 

그래서 나는 버전 incompatability 때문 같아요.