我幾天前剛剛開始研究 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頁面,而是注冊新用戶的方法?,F在 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)
添加回答
舉報
0/150
提交
取消