gpt4 book ai didi

java - 如何获取Struts 2工厂类中的ServletContext

转载 作者:行者123 更新时间:2023-11-30 06:34:42 27 4
gpt4 key购买 nike

访问 Struts 2 工厂类中的 ServletContext(例如 StrutsTextProviderFactory)

我使用了下面的代码:

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 属性并以这种方式设置它并不是最好的方法。

还有更好的办法吗?!

最佳答案

这不是最好的,而且是错误的,因为如果你尝试在 struts2 配置中使用这样的工厂,你可能会遇到问题。 servlet上下文在struts2初始化之前独立启动,因此您不能使用需要启动框架的struts2 api。

如果您需要在 struts2 启动时初始化应用程序,最好的方法是在调度程序初始化事件上。检查this回答您应该如何实现调度程序监听器。

以下是监听调度程序初始化事件时构造对象的顺序:

15:27:50  INFO (org.apache.struts2.spring.StrutsSpringObjectFactory:42) - ... initialized Struts-Spring integration successfully
!!! MyBean !!!
!!! init !!!
jul 18, 2013 3:27:51 PM org.apache.catalina.startup.HostConfig deployDirectory
!!! dispatcherInitialized !!!

关于java - 如何获取Struts 2工厂类中的ServletContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45400279/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com