采用springmvc的注解设计一个注册页。 要求: 用户名,密码,身份证号,性别,手机号,邮箱等信息,登录成功后进入主页,主页内容显示用户信息。在注册过程中,用户名被占用给出错误提示,对用户的性别,身份证,手机号,邮箱信息进行数据有效性验证,当用户提交后检验失败的给出错误的提示,并返回注册页,保留相关其它已输入的信息。
时间: 2023-12-15 16:03:46 浏览: 41
好的,下面是注册页的代码实现,使用了SpringMVC的注解:
```java
@Controller
public class RegisterController {
@Autowired
private UserService userService;
// 注册页面
@GetMapping("/register")
public String registerPage() {
return "register";
}
// 提交注册信息
@PostMapping("/register")
public String register(@ModelAttribute User user, Model model) {
// 验证用户名是否已被占用
if (userService.isUsernameExist(user.getUsername())) {
model.addAttribute("errorMsg", "该用户名已被占用");
return "register";
}
// 验证用户信息的有效性
List<String> errorMsgList = new ArrayList<>();
if (!isValidIdCard(user.getIdCard())) {
errorMsgList.add("身份证号格式不正确");
}
if (!isValidPhone(user.getPhone())) {
errorMsgList.add("手机号格式不正确");
}
if (!isValidEmail(user.getEmail())) {
errorMsgList.add("邮箱格式不正确");
}
if (errorMsgList.size() > 0) {
model.addAttribute("errorMsg", String.join("<br/>", errorMsgList));
model.addAttribute("user", user);
return "register";
}
// 注册用户
userService.register(user);
// 跳转到主页,显示用户信息
model.addAttribute("user", user);
return "main";
}
// 判断身份证号是否合法
private boolean isValidIdCard(String idCard) {
// TODO: 实现身份证号验证的逻辑
return true;
}
// 判断手机号是否合法
private boolean isValidPhone(String phone) {
// TODO: 实现手机号验证的逻辑
return true;
}
// 判断邮箱是否合法
private boolean isValidEmail(String email) {
// TODO: 实现邮箱验证的逻辑
return true;
}
}
```
具体实现中,我们使用了 `@Controller` 注解,使得 SpringMVC 将该类识别为控制器类。其中:
- `@GetMapping("/register")` 注解表示处理 GET 请求,该方法返回注册页面的视图名称。
- `@PostMapping("/register")` 注解表示处理 POST 请求,该方法接收前端提交的表单数据,并进行注册逻辑的处理。
- `@ModelAttribute User user` 注解表示将前端提交的表单数据绑定到 `User` 对象上。
在 `register` 方法中,我们首先验证用户名是否已被占用。如果是,我们返回注册页面,并在模型中添加错误提示信息。
如果用户名没有被占用,我们接着验证用户信息的有效性。具体实现中,我们使用了三个私有方法 `isValidIdCard`、`isValidPhone` 和 `isValidEmail`,分别用于验证身份证号、手机号和邮箱的格式是否正确。如果有任何一个验证不通过,我们同样返回注册页面,并在模型中添加错误提示信息。
最后,如果所有验证都通过,我们调用 `userService` 的 `register` 方法注册用户,并将用户信息添加到模型中,然后跳转到主页。