在之前配置的spring配置文件中会有这样的代码
<! 方法映射 >
<bean class=orgspringframeworkwebservletmvcannotationAnnotationMethodHandlerAdapter></bean>
<! 找类 >
<bean class=orgspringframeworkwebservletmvcannotationDefaultAnnotationHandlerMapping></bean>
这两句是注入开启映射的类
在spring后有了mvc标签可以将上两句改为
<mvc:annotationdriven/>
同样可以达到以上的结果
在controller中我们是这样配置的
package ntrollerannotation;
import orgspringframeworkstereotypeController;
import orgspringframeworkwebbindannotationRequestMapping;
import orgspringframeworkwebbindannotationRequestMethod;
import orgspringframeworkwebservletModelAndView;
@Controller
public class HelloAnnotationController {
@RequestMapping(value=/user/addusermethod=RequestMethodGET)
public ModelAndView addUser(){
return new ModelAndView(/annotationTestresultadd user)
}
@RequestMapping(value=/user/deluser)
public ModelAndView delUser(){
return new ModelAndView(/annotationTestresultdelete user)
}
}
这里面也有很多可以优化的
()对于传输方法在平时开发时没有必要必须规定是什么方法传输也就是无论get还是post均可以运行这样只要将method=RequestMethodGET删掉即可
()在没给个方法前面都会出现/user即为命名空间这样代码会太重复可以在类的前面加上@RequestMapping(/user)
()在struts中方法的返回值一般为String在springMVC中也可以这样做
最后controller的代码可以修改为
package ntrollerannotation;
import javaxservlethttpHttpServletRequest;
import orgspringframeworkstereotypeController;
import orgspringframeworkwebbindannotationRequestMapping;
import orgspringframeworkwebbindannotationRequestMethod;
import orgspringframeworkwebservletModelAndView;
@Controller
@RequestMapping(/user)
public class HelloAnnotationController {
@RequestMapping(/adduser)
public String addUser(HttpServletRequest request){
requestsetAttribute(resultadd user 方法)
return /annotationTest;
}
@RequestMapping(/deluser)
public String delUser(HttpServletRequest request){
requestsetAttribute(resultdelete user上述)
return /annotationTest;
}
}