zoukankan      html  css  js  c++  java
  • springmvc注解

    一.spring-serlvet.xml

    1      <!-- 注解搜索包 -->
    2      <context:component-scan base-package="com.dwl.controller.annotation"></context:component-scan>
    3      <!-- 注解需要的两个支持,开启注解 -->
    4      <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"></bean>
    5      <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"></bean>


    二.Controller

     1 @Controller
     2 public class PersonController {
     3 
     4     @RequestMapping(value="/test/add" , method=RequestMethod.GET )
     5     public ModelAndView add(){
     6         String data = "这是一个添加人的方法";
     7         return new ModelAndView("/index","data",data);
     8     }
     9     @RequestMapping(value="/test/del" , method=RequestMethod.GET)
    10     public ModelAndView delete(){
    11         String data = "删除人的方法";
    12         return new ModelAndView("/index" , "data" , data);
    13     }
    14     
    15 }

    这样就可以实现springmvc注解,但是我们这样看很别扭,无论是xml还是Controller,配置的很繁琐,和原来我们学的annotation不太一样,下面,就进行一下springmvc注解的优化
      1.优化xml配置

        这个注解需要两个类来支持,也可以说成开启注解,这两句话不好记也不好写,这个可以换成

    1      <!-- 注解需要的两个支持,开启注解 -->
    2      <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"></bean>
    3      <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"></bean>
    4      <!-- 上面两句话可以合成下面这一句话 -->
    5      <mvc:annotation-driven/>

      2.优化访问路径(Controller)

        在Controller里,注解@RequestMapping(value="/test/del",这里的/test/,我们每个方法都要写个,这根java的规范有冲突,所以,这句话可以提到类上面来,意思就是为这个类下面的所有方法都添加这个路径。

     1 @Controller
     2 @RequestMapping(value="/test")
     3 public class PersonController {
     4 
     5     @RequestMapping(value="/add" , method=RequestMethod.GET )
     6     public ModelAndView add(){
     7         String data = "这是一个添加人的方法";
     8         return new ModelAndView("/index","data",data);
     9     }
    10     @RequestMapping(value="/del" , method=RequestMethod.GET)
    11     public ModelAndView delete(){
    12         String data = "删除人的方法";
    13         return new ModelAndView("/index" , "data" , data);
    14     }
    15     
    16 }

      3.优化method(Controller)

        @RequestMapping(value="/add" , method=RequestMethod.GET),这里的提交方式method,如果说页面是post提交,而这里是get,那就会有错,这个问题不大,但是如果代码量庞大的话,你肯定得懵,这里,可以不用写,method=RequestMethod.GET,这句话可以去掉,springmvc会自动的根据你提交的方式提交。

    1 @RequestMapping(value="/add")
    2     public ModelAndView add(){
    3         String data = "这是一个添加人的方法";
    4         return new ModelAndView("/index","data",data);
    5     }

      4.优化value(Controller)

        @RequestMapping(value="/add"),这里面只有一个value感觉很多余,我们可以把这个value去掉

    1 @RequestMapping("/add")
    2     public ModelAndView add(){
    3         String data = "这是一个添加人的方法";
    4         return new ModelAndView("/index","data",data);
    5     }

      5.优化ModelAndView(Controller)

         我们记得struts的action返回的是void或者String,没有这个返回值,我们每次引用也很不方便,这里也可以改成String,那么修改成String的话我们怎么想页面传值呢?

    我们先用最原始的request。

    1 @RequestMapping("/add")
    2     public String add(HttpServletRequest request){
    3         String data = "这是一个添加人的方法";
    4         request.setAttribute("data", data);
    5         return "/index";
    6     }

      优化这我5个点我们在来看看,springmvc

      1.配置文件xml

    1 <!-- 注解搜索包 -->
    2      <context:component-scan base-package="com.dwl.controller.annotation"></context:component-scan>
    3      <!-- 注解需要的两个支持,开启注解 -->
    4      <mvc:annotation-driven/>

      2.Controller

     1 @Controller
     2 @RequestMapping(value="/test")
     3 public class PersonController {
     4 
     5     @RequestMapping("/add")
     6     public String add(HttpServletRequest request){
     7         String data = "这是一个添加人的方法";
     8         request.setAttribute("data", data);
     9         return "/index";
    10     }
    11     @RequestMapping("/del" )
    12     public String delete(HttpServletRequest request){
    13         String data = "删除人的方法";
    14         request.setAttribute("data" , data);
    15         return "/index";
    16     }
    17     
    18 }

      和上面的以比较,看着很清爽,这里如果你想操作响应的,直接在给方法参数添加响应HttpservletResponse就行了。

        

    如果有使用请标明来源:http://www.cnblogs.com/duwenlei/
  • 相关阅读:
    看《你必须知道的.NET》有感工厂模式的另类解读
    学习笔记:PDO
    学习笔记:mysqli预处理和事务处理
    学习笔记:mysql
    学习笔记:基础+文件操作(上传|下载)+面向对象+xml
    学习笔记:php+mysql
    学习及求职心得|PHP学习心得|IT从业者的几点体会
    flash做登录页传递值给asp.net,其他语言的也可以参照下
    rpm安装依赖问题
    让进程在后台可靠运行
  • 原文地址:https://www.cnblogs.com/duwenlei/p/3509248.html
Copyright © 2011-2022 走看看