【发布时间】:2016-12-11 11:25:30
【问题描述】:
我开始使用一本书来学习 Spring,但我陷入了困境。我正在实现本书的示例,因为我想运行该应用程序,所以我使用的是 spring-boot。我唯一得到的是一个 “出现意外错误(类型=未找到,状态=404)。 没有可用的消息”。
我正在使用这样配置的 ServletDispatcher:
@EnableAutoConfiguration
public class SpittrWebAppInitializer
extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected String[] getServletMappings() {
return new String[] { "/" };
}
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class<?>[] { RootConfig.class };
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class<?>[] { WebConfig.class };
}
public static void main(String[] args) throws Exception {
SpringApplication.run(SpittrWebAppInitializer.class, args);
}
}
这是 WebConfig.class:
@Configuration
@EnableWebMvc
@ComponentScan("spitter.web")
public class WebConfig extends WebMvcConfigurerAdapter {
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver resolver =
new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".jsp");
resolver.setExposeContextBeansAsAttributes(true);
return resolver;
}
@Override
public void configureDefaultServletHandling(
DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
}
这是控制器:
@Controller
public class HomeController {
@RequestMapping(value="/", method=GET)
public String home() {
return "home";
}
}
这是我正在使用的项目的结构:
├── build
│ ├── classes
│ │ ├── main
│ │ │ └── spittr
│ │ │ ├── config
│ │ │ │ ├── RootConfig.class
│ │ │ │ ├── SpittrWebAppInitializer.class
│ │ │ │ └── WebConfig.class
│ │ │ └── web
│ │ │ └── HomeController.class
│ │ └── test
│ │ └── spittr
│ │ └── web
│ │ └── HomeControllerTest.class
│ └── resources
│ └── main
├── build.gradle
├── gradle
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── settings.gradle
└── src
├── main
│ ├── java
│ │ └── spittr
│ │ ├── config
│ │ │ ├── RootConfig.java
│ │ │ ├── SpittrWebAppInitializer.java
│ │ │ └── WebConfig.java
│ │ └── web
│ │ └── HomeController.java
│ └── resources
└── test
├── java
│ └── spittr
│ └── web
│ └── HomeControllerTest.java
└── resources
现在,如果我向 localhost:8080 发出请求,我会收到 404 错误,可能是因为我必须将 jsp 视图放在 ViewResolver 可访问的文件夹中。
在我粘贴的树中,WEB-INF/views/ 文件夹必须放在哪里? 是不是必须插入jsp的地方?
非常感谢。
【问题讨论】:
标签: java spring jsp spring-mvc spring-boot