매개 변수 이름이있는 모든 이음새 상황 이벤트를 어떻게 듣나요?
-
23-08-2019 - |
문제
이음새가 발사됩니다 다른 종류의 이벤트 이는 특정 범위, 작업 또는 프로세스와 관련이 있으며 이벤트가 끝날 때까지 범위, 작업 또는 프로세스의 이름을 추가합니다.
유형의 모든 이벤트를 어떻게 듣나요?
예를 들어 <name>
다음과 같은 이벤트를 듣고 싶습니다.
org.jboss.seam.createProcess.<name>
- 프로세스가 생성 될 때 호출됩니다org.jboss.seam.endProcess.<name>
- 프로세스가 끝날 때 호출됩니다org.jboss.seam.initProcess.<name>
- 프로세스가 대화와 관련이있을 때 호출org.jboss.seam.startTask.<name>
- 작업이 시작될 때 호출됩니다org.jboss.seam.endTask.<name>
- 작업이 종료 될 때 호출됩니다
나는 이것을해야한다 유효한 이름 목록을 모르지만 앞서 ... :-(
@observer를 사용하여 관찰자 또는 비슷한 것을 만들고 싶습니다. 같은 구성 요소에서 최대 두 개의 이벤트 클래스를들을 것입니다.
해결책
Seam의 이벤트 클래스를 자신의 구현으로 대체하여 쉽게 수행 할 수 있습니다. 그런 다음 특정 문자열로 시작하는 이벤트를 찾으십시오.
@Scope(ScopeType.STATELESS)
@BypassInterceptors
@Name("org.jboss.seam.core.events")
@Install(precedence=APPLICATION)
public class Events extends org.jboss.seam.core.Events
{
@Override
public void raiseEvent(String type, Object... parameters )
{
super.raiseEvent( type, parameters );
if ( type.startsWith( "org.jboss.seam.createProcess" ) )
{
super.raiseEvent( "org.jboss.seam.createProcess", parameters );
}
//etc.
}
}
이제 "org.jboss.seam.createprocess"를 관찰하여 모든 CreateProcess 이벤트를 얻을 수 있습니다.
다른 팁
IF 내부에는 super.raiseevent (...)를 작성해야합니다. 그렇지 않으면 무한 루프가 생깁니다.
제휴하지 않습니다 StackOverflow