我几天前刚刚开始研究 java spring boot,目前我正在研究 Spring Boot Web 应用程序。到现在为止我已经Signup,Singin并且Dashboard(Home Page)。当用户注册成功时,我将用户重定向到登录页面,当用户成功登录时,我将用户重定向到仪表板。
问题是当注册页面加载时,我正在调用register()方法@RequestMapping,完整的方法如下。
注意:全部大写字母的单词是静态字符串。
@RequestMapping(REGISTER)
public String register() {
System.out.println("Register Working!!!!");
return REGISTER;
}
在上面的方法中,网址变为http://localhost:8080/register 但在注册/注册页面上,当用户单击“注册”按钮时,我正在调用另一个名为“registerUser(Users user)完整方法”的方法,如下所示
@PostMapping("registerUser")
public ModelAndView registerUser(Users user) {
ModelAndView mv = new ModelAndView();
user.setIpAddress(AppUtils.getCurrentIp());
if (isUserByUsernamePresent(user.getUsername()) || isUserByEmailPresent(user.getEmail())) {
mv.setViewName(REGISTER);
mv.addObject(MESSAGE_TYPE_ST, MESSAGE_TYPE_DANGER);
mv.addObject(MESSAGE_Body_ST, "This username or email alreary exit!");
} else {
repo.save(user);
Users tempUser = getUserDetail(user, "RegisterUser");
if (user.getUsername().equals(tempUser.getUsername())) {
mv.setViewName(INDEX);
mv.addObject(MESSAGE_TYPE_ST, MESSAGE_TYPE_SUCCESS);
mv.addObject(MESSAGE_Body_ST, "You have successfully created an account! check your email to confirm your registration");
} else {
mv.setViewName(REGISTER);
mv.addObject(MESSAGE_TYPE_ST, MESSAGE_TYPE_DANGER);
mv.addObject(MESSAGE_Body_ST, "Something went wrong, please try again or contact us!");
}
}
所以这里registerUser不是一个jsp页面,而是注册新用户的方法。现在 url 变为http://localhost:8080/registerUser。此时如果用户刷新页面,用户会收到一堆错误代码,因为registerUser不是jsp页面,因此用户无法直接调用它。
这是我的问题,在这种情况下如何处理http://localhost:8080/registerUser如果它不是 jsp 页面。我想到的一种解决方案是我应该只有一种方法register,或者registerUser检查用户对象是否为空,然后考虑调用来自加载页面,或者如果用户对象不为空,则调用来自注册按钮,所以我应该这样做保存用户的东西。
如果有更好的方法请告诉我。任何努力都会受到赞赏。如果需要公开更多代码,请告诉我。
编辑: @PostMapping("registerUser")如果注册成功,我将索引设置为视图名称,如果注册不成功,我将设置索引作为视图名称。那么url不应该分别是index或者register吗?
慕雪6442864
相关分类