为了账号安全,请及时绑定邮箱和手机立即绑定

用户刷新时如何处理Spring Boot控制器中的非jsp方法

用户刷新时如何处理Spring Boot控制器中的非jsp方法

烙印99 2024-01-17 16:40:33
我几天前刚刚开始研究 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吗?
查看完整描述

1 回答

?
慕雪6442864

TA贡献1812条经验 获得超5个赞

您可以通过这种方式来解决刷新错误。完成处理后,从 registerUser 方法调用 GET 方法(重定向到控制器其他 GET 方法)以重定向到所需页面,因此,如果刷新页面,调用将针对该 get 方法而不是 post(registerUser)



查看完整回答
反对 回复 2024-01-17
  • 1 回答
  • 0 关注
  • 37 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信