SpringMVC用java配置 访问404
小行星2号 2018-05-21 01:40:50 求助,我按照Spring实战写,但是却无法访问!访问路径、请求映射、jar包都检查了没找出原因
配置类
public class WebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer{
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class<?>[] {RootConfig.class};
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class<?>[]{WebConfig.class};
}
@Override
protected String[] getServletMappings() {
return new String[] { "/" };
}
}
配置类
@Configuration
@EnableWebMvc
@ComponentScan("com.heima.springmvc.controller")
// WebMvcConfigurationSupport
public class WebConfig extends WebMvcConfigurerAdapter {
// 配置JSP视图解析器
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
// 设置前缀
resolver.setPrefix("/WEB-INF/jsp/");
resolver.setExposeContextBeansAsAttributes(true);
return resolver;
}
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
}
配置类
@Configuration
@ComponentScan(basePackages= {"com.heima.springmvc"},
excludeFilters= {@Filter(type=FilterType.ANNOTATION,value=EnableWebMvc.class)}
)
@EnableAspectJAutoProxy
public class RootConfig {
}
操作
@Controller
@RequestMapping("/hello")
public class HelloController {
/*查询全部items*/
@RequestMapping(value="/home",method=GET) //访问路径映射。可以指定method参数
public String home() {
System.out.println("hi,.....");
//直接返回jsp
return "success.jsp";
}
}
测试类
public class HomeControllerTest {
@Test
public void testHome() throws Exception {
HelloController c=new HelloController();
MockMvc mockmvc=standaloneSetup(c).build();
mockmvc.perform(get("/hello/home")).andExpect(view().name("success.jsp"));
}
}
测试的结果:
INFO [main] - Mapped "{[/hello/home],methods=[GET]}" onto public java.lang.String com.heima.springmvc.controller.HelloController.home()
INFO [main] - Looking for @ControllerAdvice: org.springframework.test.web.servlet.setup.StubWebApplicationContext@617c74e5
INFO [main] - Initializing Spring FrameworkServlet ''
INFO [main] - FrameworkServlet '': initialization started
INFO [main] - FrameworkServlet '': initialization completed in 3 ms
hi,.....