질문
- 예쁜-config.xml 파일을 사용하지 않고, 프로그래밍 꽤-얼굴을 구성 할 수있는 방법이 있나요
?
문제 상황 : 내 상황에서
mapppings 다른 XML 자원에서 온해야하고 몇 가지 추가 논리는 그것을 향해있다. 그래서 나는 내가 prettyConfig 객체가Prettyfaces 프로그램 구성
@Override
public void attributeAdded(ServletContextAttributeEvent event) {
Object value = event.getValue();
if(value != null && value instanceof PrettyConfig){
PrettyConfig prettyConfig = (PrettyConfig)value ;
try {
PrettyFacesConfigProvider provider = new PrettyFacesConfigProvider() ;
PrettyConfig config = provider.loadConfiguration(event.getServletContext());
prettyConfig.setMappings(config.getMappings());
} catch (Exception ex) {
Logger.getLogger(CRSWebListener.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
PrettyFacesConfigProvider
클래스는 내 사용자 지정 매핑 구성을 기반으로 구현되는 PrettyFilter하여 서블릿 컨텍스트에 추가 될 때 모니터링 어디가 ServletContextAttributeListener을 구현 다음과 같은 솔루션을 고안했다. 업데이트 된 구성을 검사하고 모든 매핑이 제대로 추가 된 것처럼 보입니다. 그러나이 길을 택하면 매핑이 효과가 없습니다. 물론 매핑을 pretty-config.xml에 넣으면 완벽하게 작동합니다. 내가 사용하고
는 3.3.3, JSF 2.2 꽤-에 직면, 4.0, 바람둥이 7
나는 실제로 SPI 기술을 먼저 시도했다. 그러나 그것을 작동하게 만들 수는 없었다. 위의 코드에서 ** PrettyFacesConfigProvider ** 클래스는 실제로 매우 동일한 SPI 호환 구현입니다. 귀하의 의견 후 나는 다시 시도하고 그것을 효과. 작동하지 않는 이유는 spi config 파일을 잘못된 위치에 두었 기 때문입니다. ** META-INF/services **를 리소스 디렉토리에 만들었습니다. 파일을 거기에 넣고 빙고에 넣으십시오! – thorondor