Java SpringMVC无法解析.jsp文件

Java SpringMVC无法解析.jsp文件,java,spring,jsp,spring-mvc,view,Java,Spring,Jsp,Spring Mvc,View,我正在尝试构建一个RESTful Web服务。我遵循spring.io的说明,使“hello项目”(localhost:8080/greeting)能够正常工作。 PS:我使用了Maven项目。该项目已在Github上发布: 然而,当我试图让SpringMVC解析我的一个视图(.jsp)时。据说 白标错误页 此应用程序没有/error的显式映射,因此您可以看到 这是一种退路 2015年3月25日星期三01:31:04美国东部时间出现意外错误(类型=非 已找到,状态为404)。没有可用的消息 我不

我正在尝试构建一个RESTful Web服务。我遵循spring.io的说明,使“hello项目”(localhost:8080/greeting)能够正常工作。 PS:我使用了Maven项目。该项目已在Github上发布:

然而,当我试图让SpringMVC解析我的一个视图(.jsp)时。据说

白标错误页

此应用程序没有/error的显式映射,因此您可以看到 这是一种退路

2015年3月25日星期三01:31:04美国东部时间出现意外错误(类型=非 已找到,状态为404)。没有可用的消息

我不确定为什么总是发生这种情况,因为我已经有一个配置文件,如下所示

@Configuration
@EnableWebMvc
@ComponentScan(basePackages="config")
public class WebConfig extends WebMvcConfigurerAdapter {

    @Bean
    public InternalResourceViewResolver viewResolver() {
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/views/");
        resolver.setSuffix(".jsp");
        return resolver;
    }

}
我的项目的整个目录树是:

src-main|- java   |- config  |-  WebConfig.java

                  |- hello   |-  Application.java
                             |-  Greeting.java
                             |-  GreetingController.java
                             |-  PMethodController.java

        |- webapp |- WEB-INF |-  views   |-  pmethod.jsp
                             |-  web.xml
我从朋友那里复制了web.xml。这个文件在他的项目中运行良好

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

    <servlet>
        <servlet-name>mvc-Dispatcher</servlet-name>
        <servlet-class>
            org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <init-param>
            <param-name>contextClass</param-name>
            <param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value>
        </init-param>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>config</param-value>
        </init-param>
    </servlet>

    <servlet-mapping>
        <servlet-name>mvc-Dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

    <welcome-file-list>
        <welcome-file>/</welcome-file>
    </welcome-file-list>
</web-app>
My Application.java

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
如果我运行项目,然后键入 它将在页面顶部显示白标签错误页面

试试这个:

@Bean
public ViewResolver viewResolver() {
    InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); 
    viewResolver.setViewClass(JstlView.class);
    viewResolver.setPrefix("/WEB-INF/views/");
    viewResolver.setSuffix(".jsp"); 
    return viewResolver;
}

你会发现一个完整的,简单的

修复应用程序的一些想法:

  • 删除WebConfig并将
    InternalResourceViewResolver
    粘贴到应用程序类中。因为你没有扫描那个包裹,所以它没有被抓到
  • 删除web.xml文件

您可以使用
“org.springframework.web.servlet.view.InternalResourceViewResolver”
作为您的viewResolver,您好!我尝试了您的代码,但是TemplateResolver无法导入到项目中。我正在从事一个maven项目,是否需要向pom.xml中添加更多内容才能使其正常工作?嘿,抱歉,添加了错误的代码,刚刚更新了新代码。检查一下,让我知道。你希望如此。让我查一查再给你回电话。耶!我刚刚在github上发布了我的项目,以下是链接:
@Bean
public ViewResolver viewResolver() {
    InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); 
    viewResolver.setViewClass(JstlView.class);
    viewResolver.setPrefix("/WEB-INF/views/");
    viewResolver.setSuffix(".jsp"); 
    return viewResolver;
}