EDIT: Ich erkannte, dass ich einen Fehler in meinem ComponentScan
gemacht, wie viele Kommentatoren darauf hingewiesen, ich habe es geändert, aber es funktioniert immer noch (immer noch 404).Spring MVC 4 Controller nicht
Ich habe ein Projekt und ich verwende alle Annotationen-basierte Konfiguration. Hier ist die Konfigurationsdateien:
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[] { "/" };
}
}
ich auch eine Persistenz Config haben, aber ich glaube nicht, das ist relevant für dieses Problem. Wie auch immer, hier ist mein Root-Pfad-Controller:
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";
}
}
Der Controller nie aufgerufen wird und ich am Ende einen 404 Fehler.
Ich bezweifle, das Basispaket ist benannt 'src' .. –
wenn Sie Ihre Dateien unter' src' fügen Sie dann 'basepackage = "." 'statt – emotionlessbananas
@AsteriskNinja ist es in einem Paket' Controller' unter dem 'src' -Verzeichnis, sollte es also" src.controller "sein? Danke vielmals. – Liumx31