1.UserRegisterVo
package com.atguigu.gulimall.auth.vo;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.Pattern;
/**
* 注册VO
* @author zfh
* @email hst1406959716@163.com
* @date 2022-01-07 09:40:46
*/
@Data
public class UserRegisterVo {
@NotEmpty(message = "用户名不能为空")
@Length(min = 6, max = 19, message="用户名长度在6-18字符")
private String userName;
@NotEmpty(message = "密码不能为空")
@Length(min = 6,max = 18,message = "密码必须是6—18位字符")
private String password;
@NotEmpty(message = "手机号不能为空")
@Pattern(regexp = "^[1]([3-9])[0-9]{9}$", message = "手机号格式不正确")
private String phone;
@NotEmpty(message = "验证码不能为空")
private String code;
}
2.注册页面的修改
3.LoginController中register
/**
* TODO 重定向携带数据,利用session原理 分布式下session问题待解决
* 注册
* @return
*/
@PostMapping("/register")
public String register(@Valid UserRegisterVo vos, BindingResult result, RedirectAttributes attributes){
//如果有错误回到注册页面
if (result.hasErrors()) {
Map<String, String> errors = result.getFieldErrors().stream()
.collect(Collectors.toMap(FieldError::getField, FieldError::getDefaultMessage));
attributes.addFlashAttribute("errors",errors);
//校验出错回到注册页面
return "redirect:http://auth.gulimall.com/reg.html";
}
//注册成功回到登录页面
return "redirect:http://auth.gulimall.com/login.html";
}