首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Prettyfaces编程配置

Prettyfaces编程配置
EN

Stack Overflow用户
提问于 2013-10-19 16:26:49
回答 1查看 402关注 0票数 0

问题

  1. 是否有任何方法可以通过编程方式配置漂亮-faces,而无需使用漂亮-config.xml文件?
  2. 如果必须使用漂亮的config.xml,那么是否有任何方法以编程方式覆盖/增强其UrlMapppings?

问题背景:

在我的情况下,映射必须来自另一个xml资源,并且有一些关于它的附加逻辑。因此,我设计了以下解决方案--我实现了一个ServletContextAttributeListener,在这里我监视prettyConfig对象何时被PrettyFilter添加到servlet上下文中

代码语言:javascript
复制
@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类是构建自定义映射配置的实现。我检查了更新的配置,似乎所有的映射都被正确地添加了。但是如果我走这条路的话,映射就没有任何效果。当然,如果我将映射放在漂亮的config.xml中,它就会完美地工作。

我用的是漂亮脸3.3.3,jsf 2.2,素数面4.0,tomcat 7

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-20 09:15:21

有一个名为ConfigurationProvider的SPI,它允许您实现用于提供PrettyFaces配置的自定义解决方案。PrettyFaces在内部使用这个SPI来提供不同的配置机制,比如XML注解。但是,您也可以自己使用SPI来实现构建配置的自定义方法。

只需创建ConfigurationProvider的实现,然后将名为META-INF/services/com.ocpsoft.pretty.faces.spi.ConfigurationProvider的文件添加到类路径中,并在其中添加实现类的完整类名(有关此插件机制的描述,请参见这个例子获取此类文件,并添加ServiceLoader的javadocs )。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19468292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档