简体   繁体   English

是否有一个PropertyPlaceholderConfigurer用于 <portlet-preferences> ?

[英]Is there a PropertyPlaceholderConfigurer for <portlet-preferences>?

I understand that there is the ServletContextPropertyPlaceholderConfigurer which: 我知道有ServletContextPropertyPlaceholderConfigurer

resolves placeholders as ServletContext init parameters (that is, web.xml context-param entries). 将占位符解析为ServletContext初始化参数(即web.xml上下文参数条目)。

Does anyone know of a PropertyPlaceholderConfigurer that would similarly resolve placeholders as portlet-preferences (that is, portlet.xml portlet-preference entries)? 有谁知道PropertyPlaceholderConfigurer可以类似地将占位符解析为portlet-preferences (即portlet.xml portlet-preference条目)?

Here's how I solved the problem, I ended up writing a class similar to ServletContextPropertyPlaceholderConfigurer.. :-) 这是我解决问题的方法,我最终编写了一个类似于ServletContextPropertyPlaceholderConfigurer .. :-)的类。

public class PortletConfigPropertyPlaceholderConfigurer extends
        PropertyPlaceholderConfigurer implements PortletConfigAware {

    private PortletConfig portletConfig;

    private boolean configOverride = false;

    public void setPortletConfig(PortletConfig portletConfig) {
        this.portletConfig = portletConfig;
    }

    public void setConfigOverride(boolean configOverride) {
        this.configOverride = configOverride;
    }

    @Override
    protected String resolvePlaceholder(String placeholder, Properties props) {
        String value = null;
        if (this.configOverride && this.portletConfig != null) {
            value = resolvePlaceholder(placeholder, this.portletConfig);
        }
        if (value == null) {
            value = super.resolvePlaceholder(placeholder, props);
        }
        return value;
    }

    protected String resolvePlaceholder(String placeholder,
            PortletConfig portletConfig) {
        return portletConfig.getInitParameter(placeholder);
    }
}

Cheers, Gerson 干杯,格森

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM