问题描述
在呈现 WEB-CONTENT/WEB-INF/jsp/index.jsp 中的 index.jsp 时获取 DispatcherServlet 的类未找到异常
Getting the Class Not Found Exception for DispatcherServlet while rendering index.jsp which is in WEB-CONTENT/WEB-INF/jsp/index.jsp
以下是项目的结构.
- web.xml 在 WEB-CONTENT 下.
- abc 是我的 Dispatcher servlet 的名称.所以配置文件将是 abc-servlet.xml,它将包含带有所有定义了命名空间和架构.
- 我应该将 abc-servlet.xml 文件放在哪里?它应该在 classes 文件夹中还是 web.xml 所在的位置?
- 是不是因为spring配置文件的位置导致的异常?
- 另外,如果我将配置文件放在其他位置怎么办,我如何让项目知道它位于项目中的特定路径?
我在 smaple 项目中使用注解驱动的控制器.
I am using annotation driven controller in the smaple project.
推荐答案
来自文档:
在 DispatcherServlet 初始化时,Spring MVC 会寻找一个在您的 WEB-INF 目录中创建名为 [servlet-name]-servlet.xml 的文件web 应用程序并创建在那里定义的 bean,覆盖在全局中使用相同名称定义的任何 bean 的定义范围.
因此将 abc-servlet.xml
放在 WEB-INF
中应该允许调度程序 servlet 获取您的配置.
So placing abc-servlet.xml
within WEB-INF
should allow the dispatcher servlet to pick up your configuration.
如果您不希望您的调度程序 servlet 使用默认名称或希望它驻留在除 WEB-INF
之外的另一个目录中,您可以在 web.xml 中指定此配置.可以通过在 DispatcherServlet
If you didn't want your dispatcher servlet to use the default name or wanted it to reside in another directory besides WEB-INF
you would specify this configuration in web.xml. The location and name of the dispatcher servlets configuration can be changed by setting the contextConfigLocation
init-param within the DispatcherServlet
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>WEB-INF/spring/servlet-context.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
可以在 Spring 文档
这篇关于spring 配置文件和 web.xml 的确切位置在哪里?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!