当前位置: 首页 > 面试题库 >

EnableWebMvc引发ServletException:无法解析名称为的视图

竺和洽
2023-03-14
问题内容

使用带有静态HTML页面的Spring Boot + MVC玩耍,同时注意到这件事:

首先,我有:

索引控制器:

@Controller
public class IndexController {

    @RequestMapping("/")
    public String index() {
        return "index.html";
    }

    @RequestMapping("/{path:[^\\.]+}/**")
    public String forward() {
        return "forward:/";
    }
}

HTML文件是:...\src\main\resources\static\index.html

因此,当我的主要应用程序类是:

@SpringBootApplication
public class MyApplication extends WebMvcConfigurerAdapter {

    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}

一切正常,在默认路径下:localhost:8080\我得到index.html页面内容

但是如果我用 @EnableWebMvc

@SpringBootApplication
@EnableWebMvc
public class MyApplication extends WebMvcConfigurerAdapter {

    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}

我得到异常:javax.servlet.ServletException: Could not resolve view with name 'index.html' in servlet with name 'dispatcherServlet'
但是根据这个Spring文档,这是一个有效的配置。

也许有人可以解释我为什么?我了解不对吗?


问题答案:

根据spring-boot的文档

自动配置在Spring的默认值之上添加了以下功能:

  • 静态index.html支持。

如果您想保留Spring Boot
MVC功能,并且只想添加其他MVC配置(拦截器,格式化程序,视图控制器等),则可以添加自己@Configuration的type类
WebMvcConfigurerAdapter,但 不添加
@EnableWebMvc。如果您希望提供的自定义实例RequestMappingHandlerMapping
RequestMappingHandlerAdapter或者ExceptionHandlerExceptionResolver可以声明一个WebMvcRegistrationsAdapter提供此类组件的实例。

因此,通过添加@EnableWebMvc您只需禁用对您的spring-boot自动配置。即静态index.html支持。



 类似资料:
  • 问题内容: 我一直在尝试导入以下Web服务:http : //soap.genome.jp/KEGG.wsdl和$ {JAVA_HOME} / bin / wsimport: 但出现以下错误: 问题是来自WSDL还是来自wsimport的实现?我应该使用其他工具吗? 谢谢 皮埃尔 问题答案: 我从此错误报告中发现了(显然是)解决方法:https : //netbeans.org/bugzilla/

  • 我正试图通过MoneySend API在万事达卡的沙箱上提出付款请求。下面是C#的示例代码,也可以在这里找到 问题陈述: 完全异常: mastercard.core.exceptions.apiExceptions:无法解析远程名称:“sandbox.api.mastercard.com”-->system.net.webException:无法解析远程名称:“sandbox.api.master

  • 这样的问题已经问过好几次了,我明白为什么会发生,大概除了重试,我们对此无能为力。 我有一个关于名称解析的问题。 我使用的是3.5.NET的AWS.NET SDK。我正在上传一个大文件(>500MB到1.5GB,医学图像)。我调用方法。 错误发生在大约250MB上载完成后。 这是实际的例外

  • 我的第一个应用程序有问题。我试着几个小时来解决这个问题。知道吗?? 类型异常报告 消息无法解析名为的servlet中名为“home”的视图 说明服务器遇到意外情况,无法完成请求。 例外情况 javax.servlet.ServletException:无法解析名为“dispatcher”的servlet中名为“home”的视图(dispatcher servlet.java:1251)org.sp

  • 我正在使用Client编写一个Eureka客户端应用程序。这是我的POM 如您所见,我使用的是spring boot版本

  • 问题内容: 从DateTimeFormatter javadoc: 区域名称:时区名称(’z’)无法解析。 因此,时区解析如下: 在Joda中无法完成: 问题答案: 我认为原因是“ z”时区名称是常规名称(不是标准化的)且模棱两可;也就是说,根据您的原籍国,它们的含义不同。例如,“ PST”可以是“太平洋标准时间”或“巴基斯坦标准时间”。 如果您有兴趣,此站点上列出了大量时区名称。发现存在歧义的情

  • 包含瓷砖定义的“general.xml”: 例外情况: dispatcher-servlet.xml: web.xml