要在支柱2工厂类访问ServletContext
(例如StrutsTextProviderFactory
)的Struts 2:获取在工厂类ServletContext的
我用下面的代码:
public class CustomStrutsTextProviderFactory extends
StrutsTextProviderFactory implements ServletContextListener{
private static String myConfig;
@Override
protected TextProvider getTextProvider(Class clazz) {
// I can read myConfig here !
}
@Override
public void contextInitialized(ServletContextEvent event) {
myconfig = event.getServletContext().getInitParameter("config");
}
}
它的工作原理,但我觉得定义一个static
财产,并以这种方式设置它并不是最好的方法。
有没有更好的方法?
为什么你甚至把它定义为一个静态变量?如果我从'myConfig'中删除静态,'getTextProvider'方法中的'null'将被删除。 – home
使它成为静态是我发现将此参数传递给'getTextProvider'的唯一方式。在servelt开始时调用'contextInitialized',在struts开始时调用'SabaStrutsTextProviderFactory'。每次创建'CustomStrutsTextProviderFactory'的新实例。 –