关于springmvc注解的小总结

@Controller

@Controller用于标记一个类,使用它标记的类就是一个SpringMVC Controller 对象,即一个控制器类。Spring 使用扫描机制查找应用程序中所有基于注解的控制器类。分发处理器会扫描使用该注解的类的方法,并检测该方法是否使用了

@RestController

相当于@Controller+@ResponseBody两个注解的结合,返回json数据不需要在方法前面加@ResponseBody注解了,但使用@RestController这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面

如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,配置的视图解析器InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。

例如:本来应该到success.jsp页面的,则其显示success.

2)如果需要返回到指定页面,则需要用 @Controller配合视图解析器InternalResourceViewResolver才行。 3)如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。

@RequestMapping

使用@RequestMapping 注解映射请求路径

你可以使用@RequestMapping注解来将请求URL映射到整个类上

或某个特定的方法上,即@RequestMapping 既可以定义在类上,

也可以定义方法上

一般来说,类级别的注解负责将一个特定(或符合某种模式)的请求

路径映射到一个控制器上,同时通过方法级别的注解来细化映射,即

根据特定的HTTP请求方法(GET、POST 方法等)、HTTP请求中是

否携带特定参数等条件,将请求映射到匹配的方法上

2、@RequestParam绑定单个请求参数值 @RequestParam用于将请求参数区数据映射到功能处理方法的参数上。

 public String requestparam1(@RequestParam String username)

请求中包含username参数(如/requestparam1?username=zhang),则自动传入。

@RequestParam

@RequestParam有以下三个参数: value:参数名字,即入参的请求参数名字,如username表示请求的参数区中的名字为username的参数的值将传入; required:是否必须,默认是true,表示请求中一定要有相应的参数,否则将抛出异常; defaultValue:默认值,表示如果请求中没有同名参数时的默认值,设置该参数时,自动将required设为false。

 public String requestparam4(@RequestParam(value="username",required=false) String username)

表示请求中可以没有名字为username的参数,如果没有默认为null,此处需要注意如下几点: 原子类型:必须有值,否则抛出异常,如果允许空值请使用包装类代替。 Boolean包装类型:默认Boolean.FALSE,其他引用类型默认为null。

如果请求中有多个同名的应该如何接收呢?如给用户授权时,可能授予多个权限,首先看下如下代码:

 public String requestparam7(@RequestParam(value="role") String roleList)

如果请求参数类似于url?role=admin&rule=user,则实际roleList参数入参的数据为“admin,user”,即多个数据之间使用“,”分割;我们应该使用如下方式来接收多个请求参数:

 public String requestparam7(@RequestParam(value="role") String[] roleList)

或者

public String requestparam8(@RequestParam(value="list") List<String> list) 

上一篇:@RequestParam和@RequestBody的区别


下一篇:使用postman传递数组调试