요청 범위가 지정된 bean은 다른 많은 요청 bean & 비즈니스 로직에서 데이터를 수집합니다. 이 bean은 페이지의 EL 표현식을 통해 사용되지만이 요청 전에 범위가 지정된 bean이 페이지에서 사용될 수 있기 때문에 수집 된 데이터를 사용하여 디렉토리를 빌드해야합니다 (모든 콜렉션은 끝났지 만 bean 특성이 페이지에서 사용됨).Bean의 메소드가 JSF 페이지에서 사용되기 전에 실행하십시오.
모든 콜렉션 후이 빈에서 디렉토리 빌드를 실행하려면 어떻게해야합니까? <f:event>
을 사용하지 않고 페이지의 EL 표현식을 통해 사용되기 전에 어떻게해야합니까? 나는 그것을 한 번만 만들어야합니다.
@ManagedBean(name="namesDirectory")
@RequestScoped
public class NamesDirectory {
public void addForPersonNameRetrieval(Integer id) { // this is used to collect the data in bean
peopleNamesMap.put(id,null);
.......
}
public void buildDirectory(){ // used, when all collection is over, to build the diirectory
.......
}
public String getPersonName(Integer id) { // used in the JSF page through EL expressions
name = peopleNamesMap.get(id);
}
}
여기 buildDirectory()
모든 모음의 끝에서하지만 당신은 몇 가지 옵션을 가지고있다
@Udo가 단 한 번만 제작 한 것보다 더 아름다운 해결책이 없을까요? –
아래의 패턴은 단지 하나의 재건을 야기합니다. –
예 우도, 나는 그것을 가지고 있습니다. & +1 - 그 답을 찾으십시오! 그러나 어쩌면 어떤 종류의 이벤트 청취자를 통한 솔루션이 있는지 궁금 해서요. 단계 청취자에 대해 알지는 못했지만 그들의 이름에서 생각해 보면 이러한 목적이 다소 의미있는 것인지 궁금합니다. 그렇지 않으면 솔루션이 완벽합니다. –