`
xinyoulinglei
  • 浏览: 126356 次
社区版块
存档分类
最新评论

struts2多个配置文件的应用

    博客分类:
  • java
阅读更多
<!-- 定义Struts2的核心Filter -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>
com.huawei.cmclient.common.sys.InitStruts2Filter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
==================================================================================================
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;

import org.apache.struts2.dispatcher.Dispatcher;
import org.apache.struts2.dispatcher.ng.ExecuteOperations;
import org.apache.struts2.dispatcher.ng.PrepareOperations;
import org.apache.struts2.dispatcher.ng.filter.FilterHostConfig;
import org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter;

import com.huawei.cmclient.common.log.IDebugLog;
import com.huawei.cmclient.common.log.LogFactory;


/**重载Struts2核心控制器
* @version Jul 14, 2011
* @see InitStruts2Filter
* @since
*/
public class InitStruts2Filter
    extends StrutsPrepareAndExecuteFilter
{

    /**
     * 日志对象
     */
    private static IDebugLog LOG = LogFactory.getLog(InitStruts2Filter.class);

    /**初始化
     * @param filterConfig
     * @see
     */
    public void init(FilterConfig filterConfig)
        throws ServletException
    {
        LOG.debug("Enter Func [ init(FilterConfig filterConfig) ]");
        InitStruts2Operations init = new InitStruts2Operations();
        try
        {
            FilterHostConfig config = new FilterHostConfig(filterConfig);
            init.initLogging(config);
            Dispatcher dispatcher = init.initDispatcher(config);
            init.initStaticContentLoader(config, dispatcher);

            this.prepare = new PrepareOperations(filterConfig.getServletContext(), dispatcher);
            this.execute = new ExecuteOperations(filterConfig.getServletContext(), dispatcher);
            this.excludedPatterns = init.buildExcludedPatternsList(dispatcher);

            postInit(dispatcher, filterConfig);
        }
        finally
        {
            init.cleanup();
            LOG.info("initialized struts2 integration successfully !");
        }

    }
}
=====================================================================import java.io.File;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import org.apache.struts2.dispatcher.Dispatcher;
import org.apache.struts2.dispatcher.ng.HostConfig;
import org.apache.struts2.dispatcher.ng.InitOperations;
import com.huawei.cmclient.common.log.IDebugLog;
import com.huawei.cmclient.common.log.LogFactory;
/**
* Struts2核心控制器初始化类
* @version Jul 15, 2011
* @see InitStruts2Operations
* @since
*/
public class InitStruts2Operations
    extends InitOperations
{

    /**
     * 日志对象
     */
    private static IDebugLog LOG = LogFactory.getLog(InitStruts2Operations.class);

    /**创建核心控制器
     * @param filterConfig
     * @return
     * @see
     */
    private Dispatcher createDispatcher(HostConfig hostConfig)
    {
        LOG.debug("Enter Func [ createDispatcher(HostConfig hostConfig) ]");
        Map<String, String> params = new HashMap<String, String>();
        String name;
        String value;
        for (Iterator< ? > e = hostConfig.getInitParameterNames(); e.hasNext(); params.put(name,
            value))
        {
            name = (String) e.next();
            value = hostConfig.getInitParameter(name);
        }
        parseStrutsConfig(hostConfig, params);
        return new Dispatcher(hostConfig.getServletContext(), params);

    }

    /**初始化核心控制器
     * @param filterConfig
     * @return
     * @see
     */
    public Dispatcher initDispatcher(HostConfig hostConfig)
    {
        LOG.debug("Enter Func [ initDispatcher(HostConfig hostConfig) ]");
        Dispatcher dispatcher = createDispatcher(hostConfig);
        dispatcher.init();
        return dispatcher;
    }

    /**获取所有配置文件的路径
     * @param m
     * @see
     */
    private void parseStrutsConfig(HostConfig hostConfig, Map<String, String> m)
    {
        LOG.debug("Enter Func [ parseStrutsConfig(HostConfig hostConfig, Map<String, String> m) ]");
        String home = hostConfig.getServletContext().getRealPath("/");
        home.replace("//", "/");
        if (home.startsWith("/"))
        {
            home = home + "/";
        }
        StringBuffer strutsPath = new StringBuffer("struts-default.xml,struts-plugin.xml");
        getStrutsPath(new File(home), strutsPath);
        m.put("config", strutsPath.toString());
    }

    /**获取工程下所有的struts配置文件
     * @param file
     * @param pathBuffer
     * @see
     */
    private void getStrutsPath(File file, StringBuffer pathBuffer)
    {
        LOG.debug("Enter Func [ getStrutsPath(File file, StringBuffer pathBuffer) ]");
        if (null == file)
        {
            LOG.warn("the struts config files not exist !");
            return;
        }
        File[] files = file.listFiles();
        for (int i = 0; i < files.length; i++)
        {
            File f = files[i];
            if (f.isDirectory())
            {
                getStrutsPath(f, pathBuffer);
                continue;
            }
            String fName = files[i].getName();
            if (fName.endsWith("struts.xml"))
            {
                pathBuffer.append(",");
                pathBuffer.append(files[i].getAbsolutePath());
            }
        }
    }

}
分享到:
评论

相关推荐

    struts2 为应用指定多个配置文件.rar

    "struts2 为应用指定多个配置文件"的主题意味着我们将探讨如何在Struts2框架中使用多个配置文件来增强灵活性和模块化。 首先,Struts2的默认配置文件是`struts-default.xml`和`struts-plugin.xml`,这两个文件位于`...

    ·Struts2配置文件介绍 超级详细

    在Struts2框架中,有多个重要的配置文件用于控制应用的行为与结构,其中最核心的是`struts.xml`文件。此外还包括`web.xml`、`struts.properties`、`struts-default.xml`等。 - **web.xml**:它是Web应用的部署描述...

    Struts2多个文件上传

    然后,你需要配置Struts2的配置文件(通常为struts.xml),以指定如何处理这个Action。例如: ```xml &lt;result name="success"&gt;/success.jsp ``` Struts2的默认拦截器栈(`defaultStack`)包含了文件上传所需...

    多个struts配置文件使用

    在Struts框架中,可以利用多个配置文件来组织和管理应用程序的不同部分,这不仅有助于保持代码的整洁,还能提高开发效率。以下是对“多个struts配置文件使用”这一主题的详细解析。 ### 一、Struts框架概述 Struts...

    struts2配置文件改变位置问题

    这里,`config`参数值包含了多个配置文件的路径,包括默认的`struts-default.xml`和`struts-plugin.xml`,以及自定义的`../struts.xml`。`../struts.xml`表示相对于`WEB-INF/classes`目录的上一级目录,这样就指定了...

    struts2核心配置文件

    `struts.properties` 文件是Struts2框架的另一个核心配置文件,它主要用于定义框架本身的大量属性,开发者可以根据需要修改这些属性来满足特定应用的需求。这些属性主要包括以下几类: 1. **框架配置**: - **...

    struts2配置文件

    本文将深入探讨Struts2配置文件的核心概念及其在实际开发中的应用。 **一、Struts2配置文件概述** 在Struts2中,配置文件主要分为两个部分:`struts-default.xml`和用户自定义的配置文件,如`struts.xml`或`struts-...

    struts1多模块多配置文件

    ### Struts1多模块多配置文件的开发流程详解 #### 一、引言 在大型项目的开发过程中,为了更好地组织代码结构,...以上就是关于Struts1多模块多配置文件的开发流程详解,希望能帮助开发者更好地理解和应用这一技术。

    struts2配置文件加载顺序

    5. **package配置文件**:除了`struts.xml`外,开发者还可以创建多个包(package)配置文件,以实现模块化的配置。这些文件可以放在`struts.xml`中引入,也可以通过`&lt;include file="..."/&gt;`标签进行引入。 加载顺序...

    Struts2的配置文件的详细说明

    Struts2是一个强大的MVC框架,它通过提供配置文件来管理应用程序的行为,使得开发者能够灵活地定义Action、拦截器和结果映射。本文将深入探讨Struts2的配置文件,特别是`struts.xml`文件中的关键元素和属性。 在...

    Struts2的DTD配置文件struts-2.3.dtd

    在Struts2中,`struts.xml`是核心配置文件,它定义了应用的行为、动作、结果和其他组件。为了在Eclipse这样的集成开发环境中获得代码提示和自动完成,我们需要引入DTD(文档类型定义)文件,例如`struts-2.3.dtd`。 ...

    struts2 jar包及配置文件

    本资源包含Struts2的核心jar包和相关的配置文件,对于学习和开发基于Struts2的应用来说是非常宝贵的。 首先,我们来了解一下Struts2的核心jar包。这些jar文件通常包括以下组件: 1. **struts2-core.jar**:这是...

    struts2配置文件详细说明

    - `struts.action.extension`定义了Struts2处理的请求后缀,默认是`action`,可以添加多个后缀,如`do, action,`。 - `struts.serve.static.browserCache`控制静态内容是否被浏览器缓存,`false`表示开发阶段禁用...

    Struts2.1.8中为应用指定多个配置文件

    在Struts2.1.8版本中,为了满足更复杂的应用需求,开发者可能需要指定多个配置文件来组织和管理配置信息。这种多配置文件的设置允许我们更好地分离关注点,使得代码更加模块化,易于维护。下面我们将深入探讨如何在...

    spring整合struts2与hibernate核心配置文件

    整合SSH涉及到的主要配置文件有`struts2-spring-plugin.xml`、`spring-context.xml`以及Hibernate的相关配置文件(如`hibernate.cfg.xml`)。`struts2-spring-plugin.xml`配置Struts2与Spring的集成,确保Action类由...

    Struts2的配置文件DTD解析

    Struts2是一个流行的Java web应用程序框架,它遵循MVC(模型-视图-控制器)设计模式。配置文件在Struts2中起着至关重要的...通过熟练掌握配置文件的结构和元素,开发者能够更高效地构建基于Struts2的Java web应用程序。

    struts配置的文件 连接池 mysql等配置文件

    1. **Struts2核心配置文件**:主要由`struts.xml`构成,它是整个Struts2应用的主配置文件。在这个文件中,你可以定义Action类、Action的映射、结果类型、拦截器栈等。例如: ```xml ...

    struts2配置文件详解

    Struts2框架的配置主要通过多个XML文件来实现,这些配置文件定义了应用程序的行为和结构。本文将详细介绍Struts2配置文件中的各个节点及其作用,并为初学者提供深入的理解。 #### 二、Struts2配置文件概览 Struts2...

    Struts2属性文件详解

    ### Struts2属性文件详解 #### struts.configuration 该属性用于指定加载Struts 2配置文件的配置文件管理器,默认值为`org.apache.struts2....如果需要指定默认加载多个配置文件,多个文件名间以英文逗号`,`分隔。

Global site tag (gtag.js) - Google Analytics