您的位置:首页 > 编程语言 > Java开发

springmvc学习笔记(六)注解优化

2015-08-22 09:31 786 查看
1.开启注解优化

原来版本,每次开启注解都要这个配置,为什么不合为一个配置呢,而且需要知道是哪个包的哪个类.

<!-- 根据url找方法 -->
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"></bean>
<!-- 根据扫描包下找类 -->
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"></bean>
优化版

<mvc:annotation-driven></mvc:annotation-driven>


2.注解URL优化

原版

@Controller
public class UserController {

@RequestMapping(value="/user/addUser", method=RequestMethod.GET)
public ModelAndView addUser(){
return new ModelAndView("annotation","result", "addUser-----");
}
@RequestMapping(value="/user/delUser", method=RequestMethod.GET)
public ModelAndView delUser(){
return new ModelAndView("annotation","result", "delUser-----");
}
}


这里的URL都是"/user/*********",这个/user重复了,增加了代码量.

优化版

@Controller
@RequestMapping("/user")
public class UserController {

@RequestMapping(value="/addUser", method=RequestMethod.GET)
public ModelAndView addUser(){
return new ModelAndView("annotation","result", "addUser-----");
}
@RequestMapping(value="/delUser", method=RequestMethod.GET)
public ModelAndView delUser(){
return new ModelAndView("annotation","result", "delUser-----");
}
}


优化版把/user注解到了类上,这样这个类下的所有方法的url都会加上/user.

3.请求方式get/post优化

原版是这样:

@RequestMapping(value="/addUser", method=RequestMethod.GET)
其实很多时候不需要区分get/post,现在经常使用的ajax,都要指定get/post,开发的时候如果都要知道后台的处理方式是get/post,就太麻烦了.

优化版:去掉method

@RequestMapping(value="/addUser")


这里还可以进一步优化,每次都会写个value="******",这个value是重复的,可去掉

@RequestMapping("/addUser")


4.ModelAndView优化

原版

public ModelAndView addUser(){
return new ModelAndView("annotation","result", "addUser-----");
}


这里引入了ModelAndView,不够简洁,struts2里可是用的String,springmvc也可以

@RequestMapping("/addUser")
public String addUser(){
return "annotation";
}


但是这么做要怎样传递数据呢?用最传统的方式request.setAttribute.

@RequestMapping("/addUser")
public String addUser(HttpServletRequest request){
request.setAttribute("result", "addUser-----");
return "annotation";
}
方法的参数里加入了HttpServletRequest request,如果没用到respones,可先不加response参数.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: