创建AppServletConfig类,取代spring-configs-xml配置文件
@ComponentScan("com.jt")
@EnableWebMvc
public class AppServletConfig extends WebMvcConfigurerAdapter{
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
// TODO Auto-generated method stub
registry.jsp("/WEB-INF/page/",".jsp");
}
}
创建AppWebApplicationInitializer类,继承AbstractAnnotationConfigDispatcherServletInitializer类(也可以实现WebApplicationInitializer接口,具体查看spring framework文档)
public class AppWebApplicationInitializer extends AbstractAnnotationConfigDispatcherServletInitializer{
@Override
protected Class<?>[] getRootConfigClasses() {
// Service,Dao
System.out.println("getRootConfigClasses()");
return null;
}
@Override
protected Class<?>[] getServletConfigClasses() {
System.out.println("getServletConfigClasses()");
return new Class[] {AppServletConfig.class};
}
@Override
protected String[] getServletMappings() {
// TODO Auto-generated method stub
System.out.println("getServletMappings()");
return new String[] {"*.do"};
}
}
最后再写Controller层即可
@Controller
@RequestMapping("/")
public class AnnotationHelloController {
@RequestMapping("doHelloUI") //url
public ModelAndView doHelloUI(){
System.out.println("doHelloUI()");
ModelAndView mv=new ModelAndView();
mv.setViewName("hello");
mv.addObject("msg","hello spring mvc");
return mv;
}
@RequestMapping("doSayHello")
public ModelAndView doSayHello(
ModelAndView mv){
mv.setViewName("hello");
mv.addObject("msg","do say hello");
return mv;//-->ViewResolver
}
@RequestMapping("doSayWelcome")
public String doSayWelcome(Model m){
m.addAttribute("msg", "do say welcome");
return "hello";//view
}
}
pom.xml文件因为没有web.xml会报错,需要添加
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.2</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
JavaResource报错需要在pom.xml添加
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>