Tôi đang cố gắng tạo ứng dụng "hello world" bằng gradle, spring spring và spring mvc với trình xem và giải mã đơn giản nhất.Định cấu hình ViewResolver với Khởi động mùa xuân và chú thích cho phép Không tìm thấy ánh xạ cho yêu cầu HTTP với lỗi URI
Tôi bắt đầu từ thymeleaf spring boot example và tôi chỉ muốn loại bỏ thymeleaf để tạo một ứng dụng mvc đơn giản hơn bằng cách sử dụng html thuần túy và InternalResourceViewResolver. Tôi có một greeting.html duy nhất tôi muốn phục vụ được đặt tại src/main/webapp/WEB-INF. Khi tôi chạy ứng dụng, tôi nhận được
No mapping found for HTTP request with URI [/WEB-INF/greeting.html] in DispatcherServlet with name 'dispatcherServlet'
Đây là lỗi thường gặp và có nhiều câu trả lời trên web nhưng dường như không có gì hữu ích.
Đây là Application.java tôi
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
Đây là GreetingController.java tôi
@Controller
public class GreetingController {
@RequestMapping("/greeting")
public String greeting() {
return "greeting";
}
}
Đây là MvcConfiguration.java tôi
@Configuration
@EnableWebMvc
public class MvcConfiguration extends WebMvcConfigurerAdapter{
@Bean
public ViewResolver getViewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/");
resolver.setSuffix(".html");
return resolver;
}
}
tôi chạy nó với gradle bootRun
Đây là repo với mã: https://github.com/driver-pete/spring-mvc-example
Dưới đây là một số manh mối hơn:
- Thymeleaf xem giải quyết hoạt động tốt
- InternalResourceViewResolver giải quyết để con đường đúng đắn
- WEB-INF và chúc mừng. html dường như có mặt trong các tập tin chiến tranh
- tôi không có jsp hoặc JSTL vì vậy tôi không bỏ lỡ những lọ như một số có thể đề nghị
Giả thuyết của tôi là servatcher dispatcher bằng cách nào đó được cấu hình để phục vụ trên/* thay vì/như here và ở khắp mọi nơi. Tuy nhiên tôi không có web.xml để những lời khuyên không áp dụng ở đây. Tôi thấy rất nhiều ví dụ làm thế nào để cấu hình servatcher dispatcher lập trình nhưng tôi muốn giữ ứng dụng của tôi ở mức tối thiểu và tôi nghi ngờ rằng khởi động mùa xuân được cho là cấu hình nó ok vì nó hoạt động tốt với thymeleaf.
Đặt trước tiền tố và độ phân giải của chế độ xem có thể được đơn giản hóa bằng cách đặt các thuộc tính này vào tệp application.properties: spring.mvc.view.prefix =/WEB-INF/ spring.mvc.view.suffix = .html – luke