我正在尝试制作我的第一个spring mvc应用程序,当我尝试查看我的页面时遇到问题。它是根据教程创建的,但是在我的计算机上不起作用。我还没有创建任何xml文件,也没有更改Gradle中的配置。 我正在使用macOS 11
项目结构:
DispatcherServelet:
package com.vavalang.Magazine;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
public class DispatcherServlet extends AbstractAnnotationConfigDispatcherServletInitializer{
@Override
protected Class<?>[] getRootConfigClasses() {
return null;
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class[] {WebConfig.class};
}
@Override
protected String[] getServletMappings() {
return new String[] {"/"};
}
}
MagazineController:
package com.vavalang.Magazine;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class MagazineController {
@RequestMapping(value = "/")
public String home(Model model) {
model.addAttribute("nick", "Jan");
return "home";
}
}
WebConfig:
package com.vavalang.Magazine;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ViewResolverRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
@EnableWebMvc
@ComponentScan("com.vavalang.Magazine")
public class WebConfig implements WebMvcConfigurer{
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
registry.jsp();
}
}
MagazineApplication:
package com.vavalang.Magazine;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
@SpringBootApplication
public class MagazineApplication {
public static void main(String[] args) {
SpringApplication.run(MagazineApplication.class, args);
}
}
然后登录:
2018-07-20 15:14:20.966 INFO 646 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
2018-07-20 15:14:21.048 INFO 646 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2018-07-20 15:14:21.049 INFO 646 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.5.31
2018-07-20 15:14:21.072 INFO 646 --- [ost-startStop-1] o.a.catalina.core.AprLifecycleListener : The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [/Users/kamil/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.]
2018-07-20 15:14:21.270 INFO 646 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2018-07-20 15:14:21.270 INFO 646 --- [ost-startStop-1] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 3098 ms
2018-07-20 15:14:21.453 INFO 646 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean : Servlet dispatcherServlet mapped to [/]
2018-07-20 15:14:21.460 INFO 646 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter' to: [/*]
2018-07-20 15:14:21.660 INFO 646 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/]}" onto public java.lang.String com.vavalang.Magazine.MagazineController.home(org.springframework.ui.Model)
2018-07-20 15:14:21.677 INFO 646 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
2018-07-20 15:14:21.679 INFO 646 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
2018-07-20 15:14:21.818 INFO 646 --- [ main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@3cce5371: startup date [Fri Jul 20 15:14:18 CEST 2018]; root of context hierarchy
2018-07-20 15:14:22.350 INFO 646 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup
2018-07-20 15:14:22.410 INFO 646 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2018-07-20 15:14:22.419 INFO 646 --- [ main] c.vavalang.Magazine.MagazineApplication : Started MagazineApplication in 5.956 seconds (JVM running for 7.034)
2018-07-20 15:14:31.163 INFO 646 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring FrameworkServlet 'dispatcherServlet'
2018-07-20 15:14:31.165 INFO 646 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization started
2018-07-20 15:14:31.197 INFO 646 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization completed in 31 ms
2018-07-20 15:14:31.292 WARN 646 --- [nio-8080-exec-1] o.s.web.servlet.PageNotFound : No mapping found for HTTP request with URI [/WEB-INF/home.jsp] in DispatcherServlet with name 'dispatcherServlet'