簡體   English   中英

Spring MVC無法解析.jsp文件

[英]Spring MVC cannot resolve .jsp files

我正在嘗試構建RESTful Web服務。 我按照spring.io的說明進行操作,並使“ hello project”(localhost:8080 / greeting)工作。 PS:我使用了Maven項目。 該項目已經發布在Github上: https : //github.com/Tommzy/OutlierDemo/

但是,當我試圖讓Spring MVC解決我的一個視圖(.jsp)時。 據說

白標錯誤頁面

此應用程序沒有針對/ error的顯式映射,因此您將其視為后備。

EDT 2015 Wed Mar 25 01:31:04 EDT發生意外錯誤(類型=未找到,狀態= 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>

和我的PMethodController.java:

@Controller
public class PMethodController {

    @RequestMapping("/method1")
    public String handleRequest() {
        return "pmethod";
    }

}

我的Application.java

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

取決於以上所有內容,如果我運行該項目,然后鍵入http:// localhost:8080 / method1 ,它將在頁面頂部向我顯示Whitelabel Error頁面。

嘗試這個:

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

您可以在spring-boot-samples存儲庫中找到一個完整,簡單,可運行的帶有Spring Boot的JSP示例

修復您的應用程序的一些想法:

  • 刪除您的WebConfig並將InternalResourceViewResolver粘貼到您的Application類中。 無論如何都沒有拿起它,因為您沒有在掃描那個包裹
  • 刪除您的web.xml文件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM