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

springMVC常用注解标签解析

2016-12-13 14:53 330 查看
1.@Controller

在springMVC中,controller控制器用来处理DispacherServlet分发的请求,它把请求的数据经过业务逻辑层的处理封装成model,返回给view.

@Controller用于标记在一个类的上面,如果仅仅只是使用@Controller,还不能真正意义上说他是springMVC的一个控制类。以为这个时候spring 还不认识它。如何才能让spring认识呢,需要将这个控制器交给spring来管理。spring管理控制器有两种方式

a:springmvc的配置文件中定义myController中的bean对象

b:在springMVC的配置文件中告诉spring应该去什么地方找带有@Controller的控制器

< context:component-scan base-package = “com.host.app.web” />路径写到controller的上一层(扫描包详解见下面浅析)

2.@RequestMapping

这个是一个用于处理请求地址映射的注解,既可用于类上面,也可以用于方法上,用于类上,表示类中所有响应请求的方法都是以该地址作为父路径

RequestMapping注解有6个属性

value: 指定请求的实际地址

method: 指定请求的method类型(get/post)

consumes: 指定处理请求的的提交内容类型(Content- Type)application/json, text/html;

produces: 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;

params: 指定request中必须包含某些参数值时,才让该方法处理

headers: 指定request中必须包含某些指定的header值,才能让该方法处理请求

3.Resource和Autowired

这两个注解都是做bean的注入时使用的,@Resource并不是spring的注解,它的包是javax.annotation.Resource,需要导入。

相同点:两个注解都可以写在字段和setter方法上。两个注解如果都写在字 段上,则不在需要setter方法

不同点:AutoWired是spring提供的注解,需要导入包org.springframework.beans.factory.annotation.Autowired;

最好将@Resource放在setter方法上,因为这样更符合面向对象的思想,通过set、get去操作属性,而不是直接去操作属性。

4.@ModelAttribute和@SessionAttributes

@ModelAttribute这个注解代表该controller中的所有方法在调用之前,先执行@ModelAttribute方法。可用于注解和方法参数中,可以把这个@ModelAttribute特性,应用在BaseController当中,所有的Controller继承BaseController,即可实现在调用Controller时,先执行@ModelAttribute方法。

SessionAttributes即将值放在session作用域中,写在class上。

5.@pathVariable

用于将请求的url模板中的变量映射到功能处理方法的参数上,即取出url模板中的变量作为参数。

@Controller

public class TestController {

@RequestMapping(value=”/user/{userId}”,method = RequestMethod.GET)

public String getLogin(@PathVariable(“userId”) String userId,

@PathVariable(“roleId”) String roleId){

System.out.println(“User Id : ” + userId);

return “hello”;

}

6.@RequestParam

这个注解主要用于后台控制层获取参数,和这个request.getParameter(“name”)差不多。他的三个常用参数

defaultvalue=”0”:表示的是默认值

required=false;通过Boolean设置是否是必须传入的参数

value=”isPC” 表示接受的传入参数的类型。

7.@ResponseBody

该注解用于将controller方法返回的对象,通过适当的转换HttpMessageConverter为指定格式后,写入到response的body区域中

使用时机:返回的页面不是html页面,而是其他某种数据格式时(如 json、xml等)

8.@Component

通用的注解,当不知道一些类归到哪个层时 使用。

9.@Repository

用于注解Dao层。在DaoImpl上面注解
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring mvc