springMVC(注解版)
较之于非注解版本,发生一下变化:
1.配置文件需要配置的标签有:
<!-- 包的扫描,此包下面的所有包都启用注解 -->
<context:component-scan base-package="com.mindreader.springmvc.controller" />
<!-- 开启注解 -->
<!--包的映射-->
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"></bean>
<!--方法的映射-->
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"></bean>
<!--逻辑视图的前缀和后缀-->
<bean id="viewResover" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
<!-- 静态资源访问配置 -->
<mvc:resources location="/img/" mapping="/img/**"></mvc:resources>
<mvc:resources location="/js/" mapping="/js/**"></mvc:resources>
2.controller文件的配置:
类名加上注解:@Controller
包名加上注解:@Requestmapping
一个简单的案例如下:
@Controller
public class UserController {
@RequestMapping(value="/user/addUser",method=RequestMethod.POST)
public ModelAndView addUser(){
String result ="this is addUser------";
return new ModelAndView("/jquery","result",result);
}
@RequestMapping(value="/user/delUser",method=RequestMethod.GET)
public ModelAndView delUser(){
String result ="this is delUser------";
return new ModelAndView("/jquery","result",result);
}
@RequestMapping(value="/user/toUser",method=RequestMethod.GET)
public ModelAndView toUser(){
return new ModelAndView("/jquery");
}
}
注:
在使用非注释的时候,如果需要在一个controller里面使用多个方法,需要该controller继承一个MultiActionController类,并在springmvc的配置文件中配置一行代码,如下:
<bean name="/MuitiController" class="com.mindreader.controller.MultiController">
<property name="methodNameResolver"> <ref bean="paramMethodResolver" /> </property> </bean>在使用了注解方式之后,该controller无需在继承,仅需有一个
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"></bean>
就解决了该问题.