2015-03-25 106 views
1

我試圖構建一個RESTful Web服務。我遵循spring.io的指示並使「hello project」(localhost:8080/greeting)有效。 PS:我使用了Maven項目。該項目已在Github發佈:https://github.com/Tommzy/OutlierDemo/Spring MVC無法解析.jsp文件

但是,當我試圖讓spring mvc解析我的一個視圖(.jsp)時。據說

白色標籤錯誤頁面

該應用對/錯誤沒有明確的映射,所以你看到 此作爲後備。

Wed Mar 25 01:31:04 EDT 2015有一個意外的錯誤(type = Not Found,status = 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頁面。

+0

您可以用'「org.springframework.web.servlet.view.InternalResourceViewResolver」'作爲您的ViewResolver,[看看這個](http://examples.javacodegeeks.com/enterprise-java/spring/mvc/spring-mvc-view-resolver-example/) – 2015-03-25 06:14:09

回答

0

試試這個:

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

嗨!我試過你的代碼,但是TemplateResolver無法導入到項目中。我正在開發一個maven項目,是否需要向pom.xml添加更多內容以使其工作? – Tommzy 2015-03-25 06:30:05

+0

嘿,對不起,添加了錯誤的代碼,只是更新了一個新的。檢查它並讓我知道。 – 2015-03-25 06:35:44

+0

Tommzy 2015-03-25 06:42:56