请求时报以下异常:
com.opensymphony.xwork2.inject.ContainerImpl$MissingDependencyException: No mapping found for dependency [type=com.opensymphony.xwork2.ObjectFactory, name='default'] in public void com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.setObjectFactory(com.opensymphony.xwork2.ObjectFactory). - Class: com.opensymphony.xwork2.inject.ContainerImpl File: ContainerImpl.java
原因是自定义了struts的配置文件路径,但是路径指向不正确。默认情况下struts2会在classpath下加载默认配置文件struts.xml和struts-default.xml(在struts2-core.jar下)和struts-plugin.xml(在相关struts2插件jar包中)【可选】。
如果通过config参数指定配置文件路径,那么这几个默认配置文件路径都要显式指定一下:
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
<init-param>
<param-name>config</param-name>
<param-value>struts-default.xml,struts-plugin.xml,struts/struts.xml</param-value>
</init-param>
</filter>
注意前面不需要"/"。
另外一个需要注意的地方就是,使用include指令包含文件时:
struts.xml的配置:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<constant name="struts.action.extension" value="action" />
<constant name="struts.objectFactory" value="spring" />
<include file="struts/struts-config.xml" />
</struts>
是相对于classpath根目录的路径,而不是相对于文件的路径。比如说上面的配置,struts.xml在classpath的struts目录下,struts-config.xml也在同一目录下,但是include中file的路径要写成struts/struts-config.xml,而不是struts-config.xml。
分享到:
相关推荐
在Struts2中,配置文件主要分为两个部分:`struts-default.xml`和用户自定义的配置文件,如`struts.xml`或`struts-config.xml`。这些XML文件定义了Action、结果类型、拦截器和包等元素,从而控制应用程序的行为。 *...
1. **struts-default.xml**:这是Struts2的核心配置文件,位于`struts2-core.jar`库的`/org/apache/struts2/defaults`包内。它包含了框架的基本设置,如拦截器栈、默认Action配置等。 2. **struts-plugin.xml**:这...
在Struts2中,`struts.xml`文件是核心配置文件,它定义了动作、结果、拦截器等关键组件。在默认情况下,`struts.xml`通常位于`src/main/resources`或在Web应用中是`WEB-INF/classes`目录下。 在描述的问题中,...
### Struts2 配置文件详解 #### 一、引言 在Struts2框架的应用开发过程中,配置文件起到了至关重要的作用。Struts2主要依赖于两种基于XML的配置文件:`web.xml` 和 `struts-config.xml`(通常命名为 `struts.xml`)...
### Struts2配置文件及其代码示例解析 #### 一、Struts2概述 Struts2是一个基于MVC模式的开源Web应用框架,它继承了Struts1的优点,并且进行了大量的改进,支持拦截器、结果类型、动态方法调用等功能。在Struts2中...
1. **Struts2核心配置文件**:主要由`struts.xml`构成,它是整个Struts2应用的主配置文件。在这个文件中,你可以定义Action类、Action的映射、结果类型、拦截器栈等。例如: ```xml ...
### Struts2核心配置文件详解 #### 一、概述 Struts2框架是Java Web开发领域内一个重要的轻量级框架,它简化了基于MVC(Model-View-Controller)设计模式的应用程序开发过程。在Struts2框架中,有两个核心配置文件...
7. struts.custom.properties:这是一个附加的配置文件路径,Struts2将加载这个文件中的设置和参数。 8. struts.devMode:这是一个布尔值,用于确定Struts2是否处于开发模式。如果设置为true,Struts2将处于开发...
- 这是Struts配置文件的根元素,其配置类为org.apache.struts.config.ModuleConfig。该元素下有8个子元素,每个都扮演着不同的角色,如数据源配置、全局异常处理、全局转发等。 #### 2. **Data-Sources元素** - `...
《Struts2配置文件宝典》一文详细阐述了Struts2框架中配置文件的核心概念与实践技巧,尤其聚焦于如何高效地管理拦截器、包(package)以及Action的配置,为开发者提供了一套全面而深入的理解框架配置的指南。...
Struts2是一个强大的MVC框架,其配置文件是实现应用程序逻辑和控制流程的关键部分。本文将详细介绍Struts2的核心配置文件及其元素。 首先,我们来看一下Struts2的主要配置文件: 1. **web.xml**: 这是Web应用程序...
在Struts2的配置文件(struts.xml)中添加相应的配置。 3. **设置Content-Type和Content-Disposition**: - 在Action类中,使用`ValueStack`或`ActionContext`来设置HTTP响应的`Content-Type`和`Content-...
3. **配置struts.xml**:在Struts2的主配置文件struts.xml中,我们需要声明Tiles的配置文件路径,如下所示: ```xml <constant name="struts.tiles.config.file" value="classpath:tiles-defs.xml"/> ``` 这里的...
配置文件是Struts2框架的核心组成部分,它定义了应用程序的行为、拦截器和动作映射等关键元素。本文将深入解析Struts2的配置文件,帮助开发者更好地理解和使用这一框架。 首先,我们来看Struts2的主配置文件,通常...