編輯:我意識到我在我的ComponentScan
中犯了一個錯誤,因爲很多評論者指出,我改變了它,但它仍然不工作(仍然404)。春季MVC 4控制器不叫
我有一個項目,我使用所有基於註釋的配置。下面是配置文件:
WebConfig.java
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "src.controller")
public class WebConfig extends WebMvcConfigurerAdapter{
@Bean
public InternalResourceViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setViewClass(JstlView.class);
viewResolver.setPrefix("/WEB-INF/jsp/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
}
WebInitializer.java
public class WebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
return null;
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class[] { WebConfig.class };
}
@Override
protected String[] getServletMappings() {
return new String[] { "/" };
}
}
我也有一個持續性的配置,但我不認爲這是有關這個問題。不管怎麼說,這裏是我的根路徑控制器:
AuthorController.java
@Controller
@RequestMapping({"/authors", "/"})
public class AuthorController {
@Autowired
AuthorService authorservice;
@RequestMapping(method=RequestMethod.GET)
public String getAuthors(ModelMap model){
System.out.println("----------called--------------"); //not printed
List<Author> authors = authorservice.getAllAuthors();
model.addAttribute("authors", authors);
return "authors";
}
}
控制器不會被調用,我最終得到一個404錯誤。
我懷疑你的基礎包名爲'src' .. –
如果在'src'您的文件,然後加上'basepackage = 「。」'而不是 – emotionlessbananas
@AsteriskNinja它位於'src'目錄下的包'controller'中,它應該是「src.controller」嗎?非常感謝。 – Liumx31