在使用Struts2(2.3.20)的项目中,我想在应用程序启动时运行配置的操作(名称,类,命名空间,方法).
我正在使用
供参考:我已经完成了一些关于bean和Struts注入的工作,所以不是很全新,但是我坚持解决这里所说的问题.
关于如何获得这个的任何指示将不胜感激.
阅读Andrea在下面的回答我看到我需要解释我需要什么.
我正在为应用程序构建应用程序菜单构建器功能.我的计划是获取操作配置,并根据选定操作类和方法的注释中的信息构建"菜单节点"树.
我在config-browser中的代码问题是,Configuration(xwork)似乎在Struts组件之外不可用.由于这是一个应用程序启动任务,它并不真正适合Struts的MVC组件模型.我想把菜单构建初始化放在一个ServletContextListener.
每个请求只是连接actionconfig < - > annotation < - > my_custom_menu.从这里我可以生成一个菜单结构,从动作类和方法的注释提供.
public class ActionMenuBuilderListener implements ServletContextListener {
  @Override
  public void contextInitialized(ServletContextEvent arg0) {
    List<ActionCfg> actions = Struts.getConfiguredActions(); // thisi is where I'd like some help
    for(ActionCfg action : actions) {
      MenuAnnotation annotation = getAnnotationFromMethodOrClass(action);
      if(annotation != null) {
        addMenuItem(action, annotation);
      }
    }
  }
}
下面ActionCfg是Struts为操作配置返回的任何类,Struts.getConfiguredActions()是对Struts组件的一次或多次调用,addMenu(...)也是我向我的结构添加菜单项节点的地方.该结构后来成为JSP-s构建菜单的目标. …