EDIT: Я понял, что допустил ошибку в своем ComponentScan
, как было отмечено многими комментаторами, я изменил его, но он все еще не работает (все еще 404).Контроллеры Spring 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 он находится в пакете 'controller' в каталоге' src', так должен ли он быть «src.controller»? большое спасибо. – Liumx31