发表于: 2016-08-12 20:48:08

1 2137


今天完成的事情

今天对注解的问题细致的学习了一下。如果 Web 应用程序采用了经典的三层分层结构的话,

最好在持久层、业务层和控制层分别采用上述注解对分层中的类进行注释。

      @Service用于标注业务层组件

      @Controller用于标注控制层组件

      @Repository用于标注数据访问组件,即DAO组件

      @Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。


@Controller:表明这个类是一个控制器类。如果用这个注解,需要在spring-mvc配置文件加上这一段,

<context:component-scan base-package="com.cuimy.springmvc.controller"/>


@RequestMapping:可以为控制器指定处理可以请求哪些URL请求,@RequestMapping可以定义在类或方法上。

   类上:  提供初步的请求映射信息。相对于 WEB 应用的根目录

   方法上:提供进一步的细分映射信息。相对于类定义处的 URL。若类定义处未标注 @RequestMapping,

则方法处标记的 URL 相对于WEB 应用的根目录

DispatcherServlet 截获请求后,就通过控制器上@RequestMapping 提供的映射信息确定请求所对应的处理方法。


@RequestMapping 除了可以使用请求 URL 映射请求外,还可以使用请求方法、请求参数及请求头映射请求。

@RequestMapping 限定请求方法、 请求参数、 请求头。

示例如下

@Controller  

@RequestMapping("/user")  

public class UsersController {  

      

    @RequestMapping(value="/findAll",method=RequestMethod.GET)  

    private String findAll(){  

        System.out.println("只接受get请求");  

        return "index";  

    }  

}

===============================================================================

@Controller  

@RequestMapping("/user")  

public class UsersController {  

      

    @RequestMapping(value="/findAll",method=RequestMethod.POST)  

    private String findAll(){  

        System.out.println("只接受post请求");  

        return "index";  

    }  

}  

=====================================================================================

@Controller  

@RequestMapping("/user")  

public class UsersController {  

      

    @RequestMapping(value="/findAll",params="name")  

    private String findAll(){  

        System.out.println("只接受name参数");  

        return "index";  

    }  

}  

=================================================================================

@Controller  

@RequestMapping("/user")  

public class UsersController {  

      

    @RequestMapping(value="/findAll",headers="Content-Type:text/html;charset=UTF-8")  

    private String findAll(){  

        System.out.println("只接受请求头中Content-Type为text/html;charset=UTF-8的请求");  

        return "index";  

    }  

}  

=======================================================================================

 

@RequestParam 绑定请求参数

在处理方法入参处使用 @RequestParam 可以把请求参数传递给请求方法

value:参数名

required: 是否必须。 默认为 true, 表示请求参数中必须包含对应的参数, 若不存在,将抛出异常

@Controller  

@RequestMapping("/user")  

public class UsersController {  

      

    @RequestMapping(value="/findAll")  

    private String findAll(@RequestParam(value="name",required=true)String name,//参数name不能为空  

                         @RequestParam(value="sex",required=false)String sex,//参数sex可以为空  

                      @RequestParam(value="age",defaultValue="20")String age){//参数age如果为空,默认值为20  

        System.out.println(name);  

        System.out.println(sex);  

        System.out.println(age);  

        return "index";  

    }  

}  

 



明天计划的事情:明天继续完善springmvc中不熟悉的部分,以及任务2中,还没学会的。



返回列表 返回列表
评论

    分享到