@Resource和@Autowired注解都是用来实现依赖注入的。只是@AutoWried按by type自动注入,而@Resource默认按byName自动注入。
@ApiOperation(value = “接口说明”, httpMethod = “接口请求方式”, response = “接口返回参数类型”, notes = “接口发布说明”);
@ApiOperation:描述一个类的一个方法,或者说一个接口
@ApiOperation(value = "Delete User", notes = "")
@RestController注解,相当于@Controller+@ResponseBody两个注解的结合
@RequestBody接收的不是一个Json对象,其实 @RequestBody接收的是一个Json对象的字符串,而不是一个Json对象。然而在ajax请求往往传的都是Json对象,后来发现用 JSON.stringify(data)的方式就能将对象变成字符串。同时ajax请求的时候也要指定dataType
@RequestBody的作用其实是将json格式串的数据转为java对象。
这里前端发送的是json格式的数据
注意:前端发送json数据时要指定contentType为json格式,否则后台接收无法转化为User对象
function fun() {
$.ajax({
url: '${pageContext.request.contextpath}/ajax',
contentType:'application/json;charset=utf-8',
type: 'post',
data: '{"age":19,"name":"张三"}'
});
}
通过@RequestBody 接收User数据
@RequestMapping("/ajax")
// 这里可以接收String的数据
public String ajax(@RequestBody User user){
System.out.println("controller的ajax请求");
System.out.println(user.toString());
return "add";
}
向前端传递json格式数据
@RequestMapping("/add")
@ResponseBody
public Object add(){
JSONObject jsonObject = new JSONObject();
jsonObject.put("name","aaa");
return jsonObject;
}
1、作用:
@RequestParam:将请求参数绑定到你控制器的方法参数上(是springmvc中接收普通参数的注解)
2、语法:
语法:@RequestParam(value="参数名",required="true/false",defaultValue="")
@RequestParam是传递参数的.
@RequestParam用于将请求参数区数据映射到功能处理方法的参数上。
public String queryUserName(@RequestParam String userName)
在url中输入:localhost:8080/**/?userName=zhangsan
请求中包含username参数(如/requestparam1?userName=zhang),则自动传入。
@JsonFormat
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
value:参数名
required:是否包含该参数,默认为true,表示该请求路径中必须包含该参数,如果不包含就报错。
defaultValue:默认参数值,如果设置了该值,required=true将失效,自动为false,如果没有传该参数,就使用默认值
@Valid
用于验证注解是否符合要求,直接加在变量user之前,在变量中添加验证信息的要求,当不符合要求时就会在方法中返回message 的错误提示信息。
@RestController
@RequestMapping("/user")
public class UserController {
@PostMapping
public User create (@Valid @RequestBody User user) {
System.out.println(user.getId());
System.out.println(user.getUsername());
System.out.println(user.getpassword());
user.setId(“1”);
return user;
}
}
然后在 User 类中添加验证信息的要求:
public class User {
private String id;
@NotBlank(message = "密码不能为空")
private String password;
}
@NotBlank 注解所指的 password 字段,表示验证密码不能为空,如果为空的话,上面 Controller 中的 create 方法会将message 中的"密码不能为空"返回。
当然也可以添加其他验证信息的要求:
限制 说明
@Null 限制只能为null
@NotNull 限制必须不为null
@AssertFalse 限制必须为false
@AssertTrue 限制必须为true
@DecimalMax(value) 限制必须为一个不大于指定值的数字
@DecimalMin(value) 限制必须为一个不小于指定值的数字
@Digits(integer,fraction) 限制必须为一个小数,且整数部分的位数不能超过integer,小数部分的位数不能超过fraction
@Future 限制必须是一个将来的日期
@Max(value) 限制必须为一个不大于指定值的数字
@Min(value) 限制必须为一个不小于指定值的数字
@Past 限制必须是一个过去的日期
@Pattern(value) 限制必须符合指定的正则表达式
@Size(max,min) 限制字符长度必须在min到max之间
@Past 验证注解的元素值(日期类型)比当前时间早
@NotEmpty 验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0)
@NotBlank 验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的空格
@Email 验证注解的元素值是Email,也可以通过正则表达式和flag指定自定义的email格式
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。