2015-03-25 73 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